是否可以将控制台 "Command" 文件夹从其默认目录中移出并避免异常:未定义命令 "name"?
Is it possible to move the console "Command" folder from it's default directory and avoiding the Exception: Command "name" is not defined?
默认情况下,控制台命令文件夹位于:MyProject\MyBundle\Command
并且一切都按预期工作,但是如果我将文件夹移动到另一个目录中,例如:MyProject\MyBundle\MyFolder\Command
在执行命令时它会抛出一个:[InvalidArgumentException] Command "command_name" is not defined.
在互联网上搜索并阅读了可能与此问题相关的所有文档后,我未能找到任何有用的信息...
问题是:是否存在移动该文件夹的模式,否则我将被迫使用默认文件夹?
谢谢!
您可以将其定义为服务:
my_command:
class: MyProject\MyBundle\MyFolder\Command\MyCommand
tags:
- { name: console.command }
您可以在 Symfony
documentation 中阅读有关此方法的更多信息。
看看 Symfony\Component\HttpKernel\Bundle\Bundle::registerCommands
如您所见,Command 目录是硬连接的。没有通过配置更改它的选项。如果您真的真的很想更改文件夹,请在您的 MyBundle class 中覆盖并克隆此方法。但这似乎不值得付出努力。
使用服务(如@Andrey Sobkanyuk)所建议的可能是更好的长期解决方案。
默认情况下,控制台命令文件夹位于:MyProject\MyBundle\Command
并且一切都按预期工作,但是如果我将文件夹移动到另一个目录中,例如:MyProject\MyBundle\MyFolder\Command
在执行命令时它会抛出一个:[InvalidArgumentException] Command "command_name" is not defined.
在互联网上搜索并阅读了可能与此问题相关的所有文档后,我未能找到任何有用的信息...
问题是:是否存在移动该文件夹的模式,否则我将被迫使用默认文件夹?
谢谢!
您可以将其定义为服务:
my_command:
class: MyProject\MyBundle\MyFolder\Command\MyCommand
tags:
- { name: console.command }
您可以在 Symfony
documentation 中阅读有关此方法的更多信息。
看看 Symfony\Component\HttpKernel\Bundle\Bundle::registerCommands
如您所见,Command 目录是硬连接的。没有通过配置更改它的选项。如果您真的真的很想更改文件夹,请在您的 MyBundle class 中覆盖并克隆此方法。但这似乎不值得付出努力。
使用服务(如@Andrey Sobkanyuk)所建议的可能是更好的长期解决方案。