【问题标题】:Symfony2 console command in a dependent bundle依赖包中的 Symfony2 控制台命令
【发布时间】:2014-11-08 08:58:26
【问题描述】:

我开发了一个包,它不是一个独立的 Symfony2 应用程序,而只是框架和最终应用程序之间的一个层,负责一些常见任务。

当我创建一个包含适当类的 Bundle/Command/SomeCommand.php 时,该命令在 Symfony 中不可用。但是,当我将相同的命令复制到“最终”包中时,该包扩展了“父”包中的类,该命令在那里可用。

我怀疑捆绑包必须在内核或类似的地方注册,但我正在努力寻找任何相关信息,所以任何想法都将不胜感激!

谢谢!

【问题讨论】:

  • 您可以将您的命令注册为服务。 symfony.com/doc/current/cookbook/console/… 。或者,您可以将 MyUtilBundle 类添加到您的 Bundle 目录并将其包含在您的 AppKernel 中。这将自动在 Commands 目录中注册任何命令。
  • 你在app/AppKernel.php注册了这两个包吗?
  • 这是真正的问题,谢谢!当它也在应用程序的 parameters.yml 组件部分中定义时,我曾经在 AppKernel 中使用捆绑包。但是,依赖包(Cerad 描述的 MyUtilBundle)在 AppKernel 中没有问题,所以一旦我将它添加到那里,它就很好用!

标签: php symfony console command


【解决方案1】:

Bundle 被注册为一个捆绑包时,当它被放置在Bundle/Command/SomeCommand.php 中时该命令应该可用(注意单数Command 与您的复数形式)。

你也可以从 Symfony 2.4 开始将其标记为服务,你可以使用console.command 标记将命令注册为服务。

【讨论】:

猜你喜欢
  • 2014-02-23
  • 2012-07-20
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 2014-07-14
  • 2013-08-08
相关资源
最近更新 更多