Я пишу функцию Twig в Symfony 4, но не могу заставить ее работать ...
Класс расширения
<?php
namespace App\Twig;
use App\Utils\XXX;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class XXXExtension extends AbstractExtension
{
/**
* @return array|TwigFunction|TwigFunction[]
*/
public function getFunctions()
{
return new TwigFunction('showControllerName', [$this, 'showControllerName']);
}
public function showControllerName($sControllerPath)
{
return XXX::getControllerName($sControllerPath);
}
}
У меня autowire установлен на true в services.yaml , но на всякий случай я попытался также:
App\Twig\XXXExtension:
public: true
tags:
- { name: twig.extension }
использование в html.веточка
{% set controllerName = showControllerName(app.request.get('_controller')) %}
и ответ, который я получаю после этого:
HTTP 500 Internal Server Error
Unknown "showControllerName" function.