如何调用其他命令吗
编辑该页面如何调用其他命令吗
如果正在运行一个命令取决于另一个之前你可以叫在控制台命令本身。这是非常有用的,如果一个命令取决于另一个命令或如果你想创建一个“元”命令运行一堆其他命令(例如,所有的命令都需要运行时项目的代码已经改变了在生产服务器上:清理缓存,生成学说代理,倾销网络资产,…)。
使用find ()方法找到您想要运行的命令通过命令名称。然后,创建一个新的ArrayInput的参数和选择你想传递给命令。
最终,调用run ()
方法实际上运行命令从命令并返回返回代码(从命令的返回值execute ()
方法):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
/ /……使用ob娱乐下载\组件\控制台\命令;使用ob娱乐下载\组件\控制台\输入\ArrayInput;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输出\OutputInterface;类CreateUserCommand扩展命令{/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出):int{美元命令=美元这- >getApplication ()- >找到(“演示:问候”);美元参数= (“名字”= >“法”,”,大喊“= >真正的,);美元greetInput=新ArrayInput (美元参数);美元returnCode=美元命令- >运行(美元greetInput,美元输出);/ /……}}
提示
如果你想抑制执行命令的输出,通过NullOutput作为第二个参数$命令- > run ()
。
谨慎
注意所有的命令将运行在相同的进程和一些Symfony的内置命令可能不适合这种方式。ob娱乐下载例如,缓存:清晰
和缓存:热身
命令改变一些类定义,所以运行后他们可能会打破的东西。
请注意
大多数时候,从代码调用命令不执行命令行并不是一个好主意。主要原因是控制台的命令的输出进行了优化,而不是通过其他命令。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。