/easy-twig

A very small and simple framework to get started with Twig quickly

Primary LanguagePHPMIT LicenseMIT

Easy Twig

Build Status

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 through http://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

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;
    }
}