Php Symfony捆绑包中的自定义细枝过滤器不工作
我有一些树枝过滤器,我需要定期捆绑在一起。 但是当我现在安装包时,没有找到过滤器 未知的“text2img”过滤器 显然,我的服务配置不被接受,因为如果我将文件twig-tools.yml放在config/packages文件夹中,一切正常。 但是,如果我正确理解symfony文档,那么应该自动检测配置。v symfony版本是Php Symfony捆绑包中的自定义细枝过滤器不工作,php,symfony,twig,Php,Symfony,Twig,我有一些树枝过滤器,我需要定期捆绑在一起。 但是当我现在安装包时,没有找到过滤器 未知的“text2img”过滤器 显然,我的服务配置不被接受,因为如果我将文件twig-tools.yml放在config/packages文件夹中,一切正常。 但是,如果我正确理解symfony文档,那么应该自动检测配置。v symfony版本是5.0.3 我的项目结构: ├── src | ├── Resources | | └── config | | └── twig-tools
5.0.3
我的项目结构:
├── src
| ├── Resources
| | └── config
| | └── twig-tools.yaml
| ├── Twig
| | └── TwigToolsExtension.php
| └── MyTwigToolsBundle.php
└── composer.json
My twig.tools.ymal:
services:
my_twig_tools.twig.extension.text2imgtag:
class: My\TwigToolsBundle\Twig\TwigToolsExtension
tags:
- { name: twig.extension }
如果需要更多信息,请告诉我,并提前感谢您
更新(THX至THVA):
我试过了
及
这些都没用
更新(THX至Artamiel)
我向包中添加了DependencyInjection以加载twig-tools.yaml,但没有任何更改
namespace My\TwigToolsBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
class MyTwigToolsExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('twig-tools.yaml');
}
}
在您的服务中再添加两个参数autowire:true和autoconfigure:true或有时public:trueThank,但这对我不起作用。文档中说明,配置将自动加载,您在将配置放入
config/packages
时就是这样。您的捆绑包下是否有DependencyInjection
文件夹?如果没有,请阅读文档,了解如何创建一个扩展
类,该类用于按需加载自定义/捆绑配置。好的,我决定自己测试它,它可以按预期工作。有两件事我几乎可以肯定你忘了配置。首先-我没有看到在文件顶部导入的YamlFileLoader
名称空间。此外,您还需要覆盖捆绑包文件中的父方法getContainerExtension()
(它写在文档中)。这样做,它应该开始工作。
services:
my_twig_tools.twig.extension.text2imgtag:
class: My\TwigToolsBundle\Twig\TwigToolsExtension
autowire: true
autoconfigure: true
public: true
tags:
- { name: twig.extension }
namespace My\TwigToolsBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
class MyTwigToolsExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('twig-tools.yaml');
}
}