Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 5.1:在微内核中加载自己的细枝扩展_Symfony_Twig Extension - Fatal编程技术网

Symfony 5.1:在微内核中加载自己的细枝扩展

Symfony 5.1:在微内核中加载自己的细枝扩展,symfony,twig-extension,Symfony,Twig Extension,切换到smyfony,我们面临一些基本的启动问题。 我们正在将一个现有项目转让给symfony。 因此,f.eg。配置等必须是php和动态的-到目前为止没有问题 但是:如何在微内核中加载自己的twig函数(扩展) kernel.php 受保护的函数配置容器(ContainerConfiguration$container){ $container->扩展(“细枝”,数组( “路径”=>数组(\uuuuu DIR\uuuu./../resources/views”), “自动重新加载”=>正确,

切换到smyfony,我们面临一些基本的启动问题。 我们正在将一个现有项目转让给symfony。 因此,f.eg。配置等必须是php和动态的-到目前为止没有问题

但是:如何在微内核中加载自己的twig函数(扩展)

kernel.php

受保护的函数配置容器(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
,但您可以创建自己的编译器过程并复制框架的功能。