I installed Symfony’s Twig Components in Pimcore to test if and how to do that.
A small warning ahead: This feature is still experimental, as their documentation titles.
To install the components in Pimcore simply install the components bundle via composer
composer require symfony/ux-twig-component
Now you need to tell Pimcore about this bundle in config/bundles.php
// config/bundles.php
return [
...
Symfony\UX\TwigComponent\TwigComponentBundle::class => ['all' => true],
];
It is installed and ready to be setup.
Depending on the specific setup these steps might vary, adjust accordingly
- Register the components in the services.yaml and make them public
- Create the components-class
- Create the components-template
- Use the template in your code e.g. the default-template
// services.yaml AppBundle\Components\: resource: '../../Components' public: true
// src/Components/AlertComponent.php
namespace App\Components;
use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
#[AsTwigComponent('alert')]
class AlertComponent
{
public string $type = 'success';
public string $message;
}
{# templates/components/alert.html.twig #}
<div class="alert alert-{{ type }}">
{{ message }}
</div>
{{ component('alert', { message: 'Hello Twig Components!' }) }}