Symfony依赖注入不触发加载函数

时间:2017-12-20 23:49:52

标签: symfony dependency-injection doctrine

我正在尝试使用Symfony堆栈构建自己的CMS,而且我已经遇到了依赖注入的一些问题。

我想做什么
加载CMS上安装的每个模块的“扩展”,以便合并服务和原则设置。

我在做什么
运行Symfony Flex(Symfony 4)我在src / Kernel.php中:(在configureContainer函数中)

foreach ($this->getInstalledModules() as $module) {
    $class = 'App\\Modules\\' . $module . '\\DependencyInjection\\' . $module . 'Extension';
    if (class_exists($class)) {
        $container->registerExtension(new $class());
    }
}

我的模块存储在src/Modules/[module_name]中,每个模块的依赖项加载器都在src/Modules/[module_name]/DependencyInjection/[module_name]Extension.php中,名称空间为App\Modules\Articles\DependencyInjection

我对模块的扩展:

class ArticlesExtension extends Extension implements PrependExtensionInterface
{
    public function load(array $configs, ContainerBuilder $container)
    {
        die("LOADING");
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
        $loader->load('services.yml');
    }

    public function prepend(ContainerBuilder $container)
    {
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
        $loader->load('doctrine.yml');
    }
}

正如您所看到的,我为测试目的添加了die,问题是这不会被执行(有或没有死)。 prepend函数虽然已经执行,但正在相应地注册我的学说实体。

您可以访问以下链接找到我的存储库:http://lab.cirykpopeye.be/cirykpopeye/Cirykpopeye.be/tree/development

0 个答案:

没有答案