Revision: Sat, 02 Jul 2022 10:45:30 GMT

Views - Twig

The framework provides deep integration with Twig Template engine including access to IoC scopes, i18n integration, and caching.

Installation and Configuration

To install Twig:

$ composer require spiral/twig-bridge

The extension can be enabled using Spiral\Twig\Bootloader\TwigBootloader.

protected const LOAD = [
    // ...
    Spiral\Bootloader\Views\TranslatedCacheBootloader::class, // keep localized views in separate cache files
    // ...

You can add any custom extension to Twig via addExtension method of TwigBootloader:

class TwigExtensionBootloader extends Bootloader
    public function boot(TwigBootloader $twig)

        // custom options
        $twig->setOption('name', 'value');


You can use twig views immediately. Create a view with .twig extension in app/views directory.

Hello, {{ name }}!

You can use this view without an extension in your controllers:

public function index()
    return $this->views->render('filename', ['name' => 'User']);

You can freely use twig include and extends directives.

To access the value from the IoC scope:

Hello, {{ name }}!

{{ get("Spiral\\Http\\Request\\InputManager").attribute('csrfToken') }}
Edit this page