Twig rendering backend for the BarefootJS PHP runtime (barefootjs/php) -- TwigBackend implements the engine backend contract on an autoescaping Twig\Environment, ported from packages/adapter-perl/lib/BarefootJS/Backend/*.pm (see also the packages/adapter-jinja/python port's JinjaBackend).

Maintainers

Package info

github.com/piconic-ai/barefootjs-twig

pkg:composer/barefootjs/twig

Transparency log

Statistics

Installs: 54

Dependents: 0

Suggesters: 0

Stars: 0

v0.30.6 2026-08-04 04:20 UTC

README

Twig rendering backend (Barefoot\TwigBackend) for the BarefootJS PHP runtime.

This package targets twig/twig and pairs with the @barefootjs/twig compile-time adapter, which emits .twig templates that call the runtime as a bf object ({{ bf.scope_attr() }}, {{ bf.json(x) }}, {{ bf.spread_attrs(bag) }}).

The engine-agnostic runtime itself (Barefoot\BarefootJS, Evaluator, SearchParams, Json) lives in a separate package, packages/adapter-php (barefootjs/php on Composer) -- see that package's README for the backend contract every PHP engine adapter (Twig, Blade, ...) implements.

This package is maintained in the BarefootJS monorepo and is mirrored to a Packagist-facing repository only for Composer distribution.

Do not send implementation pull requests to the Packagist mirror. Send changes to the monorepo path above; the release workflow splits this directory and pushes the mirror automatically.

Tests

php tests/test_render.php

A live end-to-end Twig render (scope markers, hydration attrs, text slots, autoescaping, spread_attrs, reserved-word mangling). Needs twig/twig installed (composer install); skips gracefully with a notice (not a failure) when vendor/autoload.php is absent. The engine-agnostic runtime's own test suite (golden helper vectors, evaluator vectors, spread_attrs, omit, render_child, ...) lives in packages/adapter-php/tests — run with php packages/adapter-php/tests/run.php.