2017 © Pedro Peláez
 

library primer-template-engine-twig

Twig template engine for Primer

image

rareloop/primer-template-engine-twig

Twig template engine for Primer

  • Monday, June 18, 2018
  • by rareloop
  • Repository
  • 3 Watchers
  • 0 Stars
  • 242 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 3 Open issues
  • 7 Versions
  • 29 % Grown

The README.md

Twig Template Engine for Primer

CI, (*1)

A template engine for Primer that uses Twig rather than the deafult (Handlebars)., (*2)

Installation

  1. In the composer.json in your Primer install, replace:, (*3)

    "rareloop/primer-template-engine-handlebars": "dev-master"
    

    with:, (*4)

    "rareloop/primer-template-engine-twig": "1.0.*"
    
  2. Run composer update., (*5)

  3. Modify your bootstrap/start.php file and change the Primer::start call to include the templateClass e.g., (*6)

    $primer = Primer::start(array(
        'basePath' => __DIR__.'/..', 
        'templateClass' => Rareloop\Primer\TemplateEngine\Twig\Template::class,
    ));
    
  4. Replace all .hbs files in your patterns and views with `.twig' files. If you don't want to do this by hand you can download the base Primer files in Twig format from this repo., (*7)

Usage

Including patterns within one another

Any pattern can be included within another by using the standard include syntax, e.g., (*8)

<div class="sub-pattern">
    {% include 'elements/forms/input' %}
</div>

More information on using {% include %} and manipulating the passed in context can be found on the Twig website., (*9)

Extending Templates

By default, Primer will wrap all page Templates with a common View (views/template.twig). When using {% extends %} this wrapping is sometimes undesirable, in such circumstances you can disable this behaviour in a couple of ways., (*10)

  1. On a per page Template basis. Add the following to the Templates data.json file:, (*11)

    {
        "primer": {
            "view": "custom-view"
        }
    }
    
  2. Site wide. Add wrapTemplate: false to the Primer::start call in bootstrap/start.php, e.g., (*12)

    $primer = Primer::start([
        'basePath' => __DIR__.'/..',
    
        'templateClass' => TwigTemplateEngine::class,
        'wrapTemplate' => false,
    ]);
    

Twig Template Cache

By default Primer uses a directory called cache inside the project root for cache files. To change this to somewhere else you can set an alternative when you start Primer in bootstrap/start.php, e.g., (*13)

$primer = Primer::start(array(
    'basePath' => __DIR__.'/..', 
    'cachePath' => 'absolute/path/to/cache/dir',
    'templateClass' => Rareloop\Primer\TemplateEngine\Twig\Template::class,
));

Custom Events

Most of the Primer events are still available, this package adds a few engine specific events too:, (*14)

  • Twig Engine Initialisation

    Called when the Twig engine is created. Useful for registering custom helpers with the Twig engine., (*15)

    Event::listen('twig.init', function ($twig) {
    
    });
    

The Versions

18/06 2018

dev-master

9999999-dev

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

18/06 2018

v3.0.0

3.0.0.0

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

06/06 2017

v2.0.0

2.0.0.0

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

18/05 2016

v1.0.2

1.0.2.0

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

17/12 2015

v1.0.1

1.0.1.0

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

16/12 2015

v1.0.0

1.0.0.0

Twig template engine for Primer

  Sources   Download

MIT

The Requires

 

The Development Requires

12/10 2015

dev-custom-inc

dev-custom-inc

Twig template engine for Primer

  Sources   Download

The Requires

 

The Development Requires