stasis/ext-twig

Twig extension for Stasis

Maintainers

Package info

github.com/stasis-php/ext-twig

pkg:composer/stasis/ext-twig

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.0 2026-03-22 23:11 UTC

This package is auto-updated.

Last update: 2026-03-23 22:40:09 UTC


README

Stasis Twig Extension is an adapter that integrates Twig templating engine with Stasis. Extension integrates with a Stasis routing system and adds route_path twig function that returns a path to a page.

Installation

Install the latest version with Composer:

composer require stasis-php/ext-twig

Configuration

Register extension in your stasis.php configuration file. For example:

<?php

declare(strict_types=1);

use Stasis\Config\ConfigInterface;
use Stasis\Extension\Twig\StasisTwigExtension;
use Twig\Environment;
use Twig\Loader\FilesystemLoader;

return new class implements ConfigInterface {
    private readonly Environment $twig;

    // 1. Create a Twig environment. You can do this in a separate method or factory. This is just an example.
    public function __construct()
    {
        $loader = new FilesystemLoader();
        $loader->addPath(__DIR__ . '/templates');
        $this->twig = new Environment($loader);
    }

    // 2. Register the extension. It's important to register it after creating a Twig environment.
    public function extensions(): iterable
    {
        return [
            new StasisTwigExtension($this->twig),
        ];
    }

    // 3. Register a route that renders a template.
    public function routes(): iterable
    {
        return [
            new Route('/', fn() => $this->twig->render('home.html.twig'), 'home'),
        ];
    }
};

Note

The configuration example above shows only the relevant configuration, omitting unrelated parts.

Usage

In template, use route_path function to generate a path to a page:

<a href="{{ route_path('home') }}">Home</a>

Note

To generate a path to a page - page name must be specified.

Credits

Volodymyr Stelmakh
Licensed under the MIT License. See LICENSE for more information.