Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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
Php Symfony捆绑包中的自定义细枝过滤器不工作_Php_Symfony_Twig - Fatal编程技术网

Php 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

我有一些树枝过滤器,我需要定期捆绑在一起。 但是当我现在安装包时,没有找到过滤器

未知的“text2img”过滤器

显然,我的服务配置不被接受,因为如果我将文件twig-tools.yml放在config/packages文件夹中,一切正常。 但是,如果我正确理解symfony文档,那么应该自动检测配置。v

symfony版本是
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');
    }
}