在自定义Symfony兼容库

时间:2017-03-16 22:44:33

标签: php symfony dependency-injection configuration drupal-8

好的,我正在创建一个我打算在Drupal 8站点中使用的自定义独立库。 Drupal 8在Symfony 2.8.x上运行。我希望这段代码可以在Drupal之外使用。所以我一直专注于使它更加面向Symfony而不是Drupal。

到目前为止,我所发现的是,Symfony要求您在DependencyInjection / Configuration.php中编写一堆配置声明。以及MyBundleExtension.php文件中的服务声明。

我还没有找到一个简单的方法来说“嘿,我想在这个独立的(不是所有的控制器)类中使用这个配置参数”。所以我写下了你在下面看到的课程。

有没有更好的方法来解决这个问题?

代码:http://pastebin.com/pdp53kxe

此外,这会在加载服务时产生任何问题吗?

在某些时候,我必须处理依赖注入,实际上是我们要注入的内容。在使用Symfony框架时,仍然不确定如何将其用于此独立库。所以关于如何让Symfony为我提供的建议会很棒。

我的基本问题是在库设置中使用Symfony。您不希望在控制器上下文中只需要变量。

1 个答案:

答案 0 :(得分:1)

就像你说的,如果你想导入配置,你需要使用你的DependecyInjection/MyBundleExtension.php类来自己加载配置(甚至可以解析)。

另一种方法是使用编译器传递来直接操作容器,但这看起来对你的情况来说太过分了。

主要原因是编译了依赖注入容器(包含所有服务定义和配置参数)。

所以你必须在编译之前注入额外的配置。

有用的链接:

http://symfony.com/doc/current/service_container/import.html

http://symfony.com/doc/current/service_container/compiler_passes.html