Symfony 5.1:在微内核中加载自己的细枝扩展
切换到smyfony,我们面临一些基本的启动问题。 我们正在将一个现有项目转让给symfony。 因此,f.eg。配置等必须是php和动态的-到目前为止没有问题 但是:如何在微内核中加载自己的twig函数(扩展) kernel.phpSymfony 5.1:在微内核中加载自己的细枝扩展,symfony,twig-extension,Symfony,Twig Extension,切换到smyfony,我们面临一些基本的启动问题。 我们正在将一个现有项目转让给symfony。 因此,f.eg。配置等必须是php和动态的-到目前为止没有问题 但是:如何在微内核中加载自己的twig函数(扩展) kernel.php 受保护的函数配置容器(ContainerConfiguration$container){ $container->扩展(“细枝”,数组( “路径”=>数组(\uuuuu DIR\uuuu./../resources/views”), “自动重新加载”=>正确,
受保护的函数配置容器(ContainerConfiguration$container){
$container->扩展(“细枝”,数组(
“路径”=>数组(\uuuuu DIR\uuuu./../resources/views”),
“自动重新加载”=>正确,
“缓存”=>false,
));
}
Twig工作正常,没有问题。。。直到我们需要自己的功能
(测试!)细枝功能:
namespace-App\Kernel\TwigExtensions;
使用Twig\Extension\AbstractExtension;
使用细枝\细枝功能;
类TwigTest扩展了抽象扩展{
公共函数getFunctions(){
返回数组(
新的TwigFunction(“test”,数组($this,function(){return“ABC”;})),
);
}
}
在“configureContainer”中使用以下源无效:
$container->services()
->加载(“App\\Kernel\\TwigExtensions\\”,sprintf(“%s/Kernel/TwigExtensions/TwigTest.php”,\uuu DIR\uuuu))
->标记('twig.extension')
我下一步有什么想法吗?谢谢 您已经向容器注册了扩展,但没有向细枝本身注册,这通常是通过调用来完成的。您可以在a中看到它是如何完成的。感谢您的评论和帮助
addExtension
似乎是重点。但不幸的是,kernel.php中的configureContainer
fct中没有getDefinition('twig')
。我也不能将twig作为变量直接添加扩展,但我需要在那里初始化扩展。不,没有,您在那里有一个ContainerConfigurator
,而不是ContainerBuilder
,但您可以创建自己的编译器过程并复制框架的功能。您已经在容器中注册了扩展,但没有在twig本身注册,这通常是通过调用来完成的。您可以在a中看到它是如何完成的。感谢您的评论和帮助addExtension
似乎是重点。但不幸的是,kernel.php中的configureContainer
fct中没有getDefinition('twig')
。我也不能将twig作为变量直接添加扩展,但我需要在那里初始化扩展。不,没有,您在那里有一个ContainerConfiguration
,没有ContainerBuilder
,但您可以创建自己的编译器过程并复制框架的功能。