Home

Awesome

Expressive Phug Template Renderer

Scrutinizer Code Quality Code Coverage Build Status Maintainability

Zend Expressive template renderer based on PHP Pug template engine

Installation

Install with composer

For Zend expressive 3

composer require infw/pug

For Zend expressive 2

composer require infw/pug:0.0.2

Enable config provider

<?php
// config/config.php

use Zend\ConfigAggregator\ArrayProvider;
use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\PhpFileProvider;

// To enable or disable caching, set the `ConfigAggregator::ENABLE_CACHE` boolean in
// `config/autoload/local.php`.
$cacheConfig = [
    'config_cache_path' => 'data/cache/config-cache.php',
];

$aggregator = new ConfigAggregator([
    \InFw\Pug\ConfigProvider::class,

    ...

    new PhpFileProvider('config/autoload/{{,*.}global,{,*.}local}.php'),

    // Load development config if it exists
    new PhpFileProvider('config/development.config.php'),
], $cacheConfig['config_cache_path']);

return $aggregator->getMergedConfig();

Enable dependencies

<?php
// config/autoload/templates.global

use Zend\Expressive\Template\TemplateRendererInterface;
use InFw\Pug\PugRendererFactory;

return [
    'dependencies' => [
        'factories' => [
            TemplateRendererInterface::class => PugRendererFactory::class,
        ],
    ],

    'templates' => [
        'extension' => 'pug',
    ],
];

Config options

// config/autoload/templates.global.php
    ...
        'pug' => [
            'pretty' => true,
            'expressionLanguage' => 'js',
            'pugjs' => false,
            'localsJsonFile' => false,
            'cache' => 'data/cache/pug',
            'template_path' => 'templates/',
            'default_params' => [
                // globals go here option will be deprecate on 1.0.0 version
                // '*' => [
                //     param => mixed value
                // ]
                // template default params
                // 'template_path::name' => [
                //     param => mixed value
                // ]
            ],
            'filters' => [
                // filter_name => invokable class
            ],
            'keywords' => [
                // keyword => invokable class
            ],
            'helpers' => [
                // helper_name => invokable class
            ]
        ],
    ...    

See full PHP Pug documentation for more detail.