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.
Create a new project based on easy twig:
composer create-project demontpx/easy-twig <folder_name>
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:
Template | URL |
---|---|
contact.html.twig | http://domain.tld/contact |
information/about-us.html.twig | http://domain.tld/information/about-us |
contact-us/index.html.twig | http://domain.tld/contact-us/ |
Note that removing the last slash will try to access contact-us.html.twig
Check out the .env
file for configuration settings.
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>
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;
}
}