Twig Template Bridge

Installation

composer require larafony/view-twig

Configuration

use Larafony\View\Twig\ServiceProviders\TwigServiceProvider;

$app->withServiceProviders([
TwigServiceProvider::class
]);

Template Example

{# resources/views/twig/welcome.twig #}
{% extends "layout.twig" %}

{% block title %}Welcome{% endblock %}

{% block content %}
<h1>Hello {{ name }}!</h1>

{% if user.isAdmin %}

You have admin access.

{% endif %}

{% for item in items %}
- {{ item.name }} - {{ item.price|number_format(2) }}

{% endfor %}

{% endblock %}

Usage in Controller

use Larafony\View\Twig\TwigRenderer;

final class HomeController extends Controller
{
#[Route('/', methods: ['GET'])]
public function index(TwigRenderer $twig): ResponseInterface
{
$html = $twig->render('welcome.twig', [
'name' => 'John',
'items' => Item::all(),
]);

return new Response(200, [], $html);
}
}

Features