首页 文章

没有HttpKernel的服务的Symfony autowire

提问于
浏览
0

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

因为这是一个仅限控制台的应用程序,它只能通过cli运行,而且永远不会通过Web运行,所以我不想添加 symfony/http-kernel 包的开销 .

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

1 回答

  • 0

    因为似乎没有现成的解决方案,所以我构建了一个可以通过composer需要的小包 .

    你可以在这里获得这个包:https://packagist.org/packages/eydamos/console-bundle

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

    我打算发布symfony 4的版本 .

相关问题