maduser/argon-twig

Twig integration for the Argon runtime stack.

Maintainers

Package info

github.com/judus/argon-twig

pkg:composer/maduser/argon-twig

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-05-25 16:07 UTC

This package is auto-updated.

Last update: 2026-05-25 16:16:26 UTC


README

PHP Build codecov Psalm Level Latest Version Total Downloads License: MIT

Twig integration for the Argon runtime stack.

Installation

composer require maduser/argon-twig

Registration

Register the service provider in your application composition layer:

use Maduser\Argon\Twig\Provider\TwigServiceProvider;

$container->register(TwigServiceProvider::class);

The provider registers:

  • Twig\Environment
  • Twig\Loader\FilesystemLoader
  • Maduser\Argon\Twig\TemplatePathRegistry
  • Maduser\Argon\Twig\Config\TwigConfig

Existing container definitions are not replaced.

Template Paths

By convention, the provider uses resources/templates below the basePath container parameter:

$container->getParameters()->set('basePath', dirname(__DIR__));

You can override the default path explicitly:

use Maduser\Argon\Twig\Config\TwigParameter;

$container->getParameters()->set(TwigParameter::DEFAULT_PATH, __DIR__ . '/../templates');

Module providers can add namespaced template paths:

use Maduser\Argon\Container\AbstractServiceProvider;
use Maduser\Argon\Container\ArgonContainer;
use Maduser\Argon\Twig\TemplatePathRegistry;

final class AuthServiceProvider extends AbstractServiceProvider
{
    #[\Override]
    public function register(ArgonContainer $container): void
    {
        $registry = $container->get(TemplatePathRegistry::class);

        $registry->addPath(__DIR__ . '/resources/templates', 'auth');
    }
}

Templates in that folder can then be rendered with Twig's namespace syntax:

$html = $twig->render('@auth/login.html.twig');

Configuration

All configuration is optional and uses container parameters:

use Maduser\Argon\Twig\Config\TwigParameter;

$parameters = $container->getParameters();
$parameters->set(TwigParameter::DEBUG, true);
$parameters->set(TwigParameter::AUTO_RELOAD, true);
$parameters->set(TwigParameter::STRICT_VARIABLES, true);
$parameters->set(TwigParameter::CACHE, dirname(__DIR__) . '/storage/cache/twig');

TwigParameter::CACHE accepts a string path or false.

Boundaries

This package only wires Twig into an Argon container. It does not define view responses, controller conventions, template inheritance rules, asset handling, or module discovery.

Quality Gates

composer check
composer test:coverage
composer psalm
composer phpcs