是否可以移动控制台" Command"来自它的默认目录中的文件夹并避免异常:命令" name"没有定义?

时间:2015-02-23 14:43:58

标签: symfony console symfony-console

默认情况下,控制台命令文件夹位于:MyProject\MyBundle\Command,并且所有文件夹都按预期工作,但如果我在命令执行时将文件夹移动到另一个目录,例如:MyProject\MyBundle\MyFolder\Command,则会抛出:{{1} }

通过互联网搜索并阅读可能与此问题相关的所有文档后,我找不到任何有用的内容......

问题是:存在移动该文件夹的模式,或者我将被迫使用默认文件夹?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以将其定义为服务:

my_command:
    class: MyProject\MyBundle\MyFolder\Command\MyCommand
    tags:
        -  { name: console.command }

您可以在Symfony documentation中详细了解此方法。

答案 1 :(得分:2)

看看Symfony \ Component \ HttpKernel \ Bundle \ Bundle :: registerCommands

如您所见,Command目录是硬连线的。没有选项可以通过配置进行更改。如果你真的真的想要更改文件夹,那么在MyBundle类中覆盖并克隆此方法。但这似乎不值得努力。

使用服务(如@Andrey Sobkanyuk所建议)可能是一个更好的长期解决方案。