intellect-web-development/templator-symfony-bundle

Templator Symfony bundle for render template

1.0.5 2023-09-24 13:08 UTC

This package is auto-updated.

Last update: 2024-04-05 14:29:36 UTC


README

Simple example:

$renderable = new Renderable(
    template: 'My first {{variable}} content',
    variables: [
        'variable' => 'rendered',
    ]
);

echo $renderer->render($renderable); // 'My first rendered content'

Object examples:

$renderable = new Renderable(
    template: 'My name is {{ obj.name }}!',
    variables: [
        'obj' => $obj = new stdClass(),
    ]
);
$obj->name = 'Templator';

echo $renderer->render($renderable); // 'My name is Templator!'
$renderable = new Renderable(
    template: 'My name is {{ obj.name.first }} {{ obj.name.last }}!',
    variables: [
        'obj' => new class () {
            public object $name;

            public function __construct()
            {
                $this->name = new class () {
                    public string $first = 'Templator';
                    public string $last = 'Symfony';
                };
            }
        },
    ]
);

echo $renderer->render($renderable); // 'My name is Templator Symfony!'

Array example:

$renderable = new Renderable(
    template: 'My name is {{ obj.name.first }} {{ obj.name.last }}!',
    variables: [
        'obj' => [
            'name' => [
                'first' => 'ivan',
                'last' => 'petrov',
            ],
        ],
    ]
);

echo $renderer->render($renderable); // 'My name is ivan petrov!'

Filter example:

$renderable = new Renderable(
    template: 'My name is {{ obj.name.first | classify }} {{ obj.name.last | classify }}!',
    variables: [
        'obj' => [
            'name' => [
                'first' => 'ivan',
                'last' => 'petrov',
            ],
        ],
    ]
);

echo $renderer->render($renderable); // 'My name is Ivan Petrov!'

Filters example:

$renderable = new Renderable(
    template: '{{a | classify}} {{b | constantize}}, {{c | pluralize | classify}} {{d | pluralize}}',
    variables: [
        'a' => 'hello',
        'b' => 'world',
        'c' => 'summer',
        'd' => 'day',
    ]
);

echo $renderer->render($renderable); // 'Hello WORLD, Summers days'