demontpx / easy-twig
Easy twig
Requires
- php: ^7.2
- ext-json: *
- symfony/dotenv: ^5.0
- symfony/http-foundation: ^5.0
- twig/twig: ^3.0
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-10-30 01:53:39 UTC
README
Easy twig is a very small and simple framework to get started with Twig quickly.
Just start editing the templates/page/index.html.twig
to start filling in your front page and templates/base.html.twig
to modify the skeleton. To add a new page, for example a 'contact' page, just create the templates/page/contact.html.twig
file and you're done! See pages.
If a page can not be found, the template templates/error/404.html.twig
will be rendered.
Getting started
Create a new project based on easy twig:
composer create-project demontpx/easy-twig <folder_name>
Pages
Assuming your projects runs on the domain.tld
domain:
templates/page/index.html.twig
will be the homepage of the project, accessible throughhttp://domain.tld/
templates/page/error/404.html.twig
contains the "Not found" error page- Any template outside
templates/page/
will not be directly accessible for the user and should be used to contain inherited, included and other templates - Any page inside
templates/page/
will be directly accessible by its name; for example:
Note that removing the last slash will try to access contact-us.html.twig
Configuration
Check out the .env
file for configuration settings.
Setting up apache2
Set the document root to the web/
folder. You also might want set AllowOverride All
and enable mod_rewrite
for some pretty URLs. Your configuration might look a bit like this:
<VirtualHost *:80> ServerName domain.tld ServerAlias www.domain.tld DocumentRoot /var/www/website/public <Directory /var/www/website/public> AllowOverride All </Directory> </VirtualHost>
Setting up Nginx
Configuration might look a bit like this:
server { server_name domain.tld www.domain.tld; root /var/www/website/public; location / { try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; internal; } }