如何在启用autowire时覆盖twig的path()方法?例如:
class ExampleRoutingExtension extends RoutingExtension
{
public function getPath($name, $parameters = array(), $relative = false)
{
return '/testEndpoint';
}
}
使用此类进行自动装配没有问题(构造函数创建对象),但getPath()方法不会覆盖父getPath()
创建您的Twig扩展:
class AppExtension extends \Twig_Extension
{
public function getFunctions(): array
{
return [
new \Twig_SimpleFunction('path', [$this, 'path']),
];
}
public function path(string $name, array $parameters = array(), bool $relative = false): string
{
return '/testEndpoint';
}
}
并通过services.yml启用:
App\Twig\YourExtension:
tags:
- { name: twig.extension }
您可以在__construct()
中注入服务(例如:路由)