src/Twig/ComponentExtension.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Twig;
  3. use Twig\Environment;
  4. use Twig\Extension\AbstractExtension;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\TwigFunction;
  7. use function array_merge;
  8. class ComponentExtension extends AbstractExtension
  9. {
  10.     protected Environment $twig;
  11.     protected CoreExtension $coreExtension;
  12.     public function __construct(Environment $twig)
  13.     {
  14.         $this->twig $twig;
  15.     }
  16.     public function getFunctions(): array
  17.     {
  18.         return [
  19.             new TwigFunction('component', function ($component$variables = [], $options = []) {
  20.                 $options array_merge([
  21.                     'withContext'   => false,
  22.                     'ignoreMissing' => false,
  23.                     'sandboxed'     => false,
  24.                     'context'       => []
  25.                 ], $options);
  26.                 return twig_include(
  27.                     $this->twig,
  28.                     $options['context'],
  29.                     $component '/' $component '.twig',
  30.                     $variables,
  31.                     $options['withContext'],
  32.                     $options['ignoreMissing'],
  33.                     $options['sandboxed']
  34.                 );
  35.             }, [
  36.                 'is_safe' => ['html']
  37.             ])
  38.         ];
  39.     }
  40. }