xervice/twig

3.0.0 2018-08-27 11:18 UTC

This package is auto-updated.

Last update: 2024-03-29 03:44:42 UTC


README

Xervice: Twig

Scrutinizer Code Quality Code Coverage

Twig template engine implementation for xervice.

Installation

composer require xervice/twig

Configuration

To define twig paths, where to search for templates, you can share a PathProvider:

<?php

namespace App\Application\Communication\Plugin\Twig;

use Xervice\Twig\Business\Model\Loader\XerviceLoaderInterface;
use Xervice\Twig\Business\Dependency\Path\PathProviderInterface;

class PathLoader implements PathProviderInterface
{
    /**
     * @param \Xervice\Twig\Business\Loader\XerviceLoaderInterface $loader
     *
     * @throws \Twig_Error_Loader
     */
    public function privideTwigPaths(XerviceLoaderInterface $loader): void
    {
        $loader->addPath('path/to/my/twig-templates', 'Application');
    }
}

You can register your PathLoader in the TwigDependencyProvider:

<?php

namespace App\Twig;

use App\Application\Communication\Plugin\Twig\PathLoader;
use Xervice\Twig\TwigDependencyProvider as XerviceTwigDependencyProvider;

class TwigDependencyProvider extends XerviceTwigDependencyProvider
{
    /**
     * @return \Xervice\Twig\Business\Dependency\Path\PathProviderInterface[]
     */
    protected function getPathProviderList(): array
    {
        return [
            new PathLoader()
        ];
    }
}

Usage

You can render templates by using the TwigFacade:

$params = [];
$twigFacade->render('mytemplate.twig', $params);

Also you can provide the TwigService to your Kernel stack and use them in your controller. The service provide the same register-method.