4

默认情况下,控制台命令文件夹位于:MyProject\MyBundle\Command并且一切都按预期工作,但是如果我将文件夹移动到另一个目录中,例如:MyProject\MyBundle\MyFolder\Command在命令执行时它会抛出: [InvalidArgumentException] Command "command_name" is not defined.

在互联网上搜索并阅读所有可能与此问题相关的文档后,我无法找到任何有用的东西......

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

谢谢!

4

2 回答 2

7

您可以将其定义为服务:

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

Symfony 您可以在文档中阅读有关此方法的更多信息。

于 2015-02-23T15:04:48.050 回答
2

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

如您所见,Command 目录是硬连线的。没有通过配置更改它的选项。如果您真的真的很想更改文件夹,请在您的 MyBundle 类中覆盖并克隆此方法。但这似乎不值得付出努力。

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

于 2015-02-23T16:09:05.673 回答