没有HttpKernel的服务的Symfony autowire

时间:2018-01-02 15:59:33

标签: php symfony symfony3.x symfony-3.4

我正在使用symfony/console构建一个控制台应用程序。 现在我想为我的服务设置autowire,所以我不必在services.yml文件中定义每个服务。
我复制了Symfony\Component\HttpKernel\KernelSymfony\Bundle\FrameworkBundle\Console\Application以及Symfony\Component\HttpKernel\Bundle\Bundle的大量代码 如果我有一个没有依赖注入的简单命令,当我调用我的bin / console可执行文件时会显示该命令,但是不显示需要DI的每个命令。

由于这是一个仅限控制台的应用程序,它只能通过cli运行,而且永远不会通过网络运行,因此我不想添加symfony/http-kernel软件包的开销。

有没有一种简单的方法可以实现这一目标? 我认为symfony应该使用松散耦合,这将是一个简单的任务,但目前我对它使用的硬耦合非常失望,并且我必须为看起来像框架的基本特性的东西添加开销量对我来说。

1 个答案:

答案 0 :(得分:0)

由于似乎没有现成的解决方案,我构建了一个可以通过作曲家需要的小包。

您可以在此处获取该套件:https://packagist.org/packages/eydamos/console-bundle

功能请求和问题可以放在相应的github存储库中。

我打算发布symfony 4的版本。