Symfony2 Twig переопределяет функцию пути по умолчанию

Мне нужен способ переопределить основную функцию path () в ветке.

У меня уже есть расширение ветки, но определение фильтра траектории не помогло мне.

Заранее спасибо.

Расширьте класс расширения маршрутизации по умолчанию.

use Symfony\Bridge\Twig\Extension\RoutingExtension; class MyRoutingExtension extends RoutingExtension { public function getPath($name, $parameters = array(), $relative = false) { //some code } } 

Затем укажите свой класс с помощью параметра:

 parameters: twig.extension.routing.class: MyNamespace\MyRoutingExtension 

================================================== ====================

Чтобы добавить больше зависимостей, таких как домен, в котором вам в основном нужно скопировать определение службы, а затем добавить свой материал:

 # services.yml twig.extension.routing: class: '%twig.extension.routing.class%' public: false arguments: - '@router' - 'domain' class MyRoutingExtension extends RoutingExtension { protected $domain; public function __construct($router,$domain) { parent::__construct($router); $this->domain = $domain; } } 

Вы также можете добавить аргумент к определению службы из внутреннего расширения DependencyInjection. Это может быть немного более надежным, чем копирование определения службы. Всегда существует риск, что определение может измениться, если symfony обновляется. Вряд ли. У меня нет подходящего примера.

Кстати, вам, вероятно, следует избегать добавления вопроса к существующему вопросу. Некоторые из нижеперечисленных избирателей будут смутно смотреть.