如何调用其他命令吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
如何调用其他命令吗
如果正在运行一个命令取决于另一个,而不是让用户记住执行的顺序,你可以直接叫它自己。这也是有用的,如果你想创建一个“元”命令,只是一堆运行其他命令(例如,所有的命令都需要运行时项目的代码已经改变了在生产服务器上:清理缓存,生成Doctrine2代理,倾销网络资产,…)。
从另一个调用命令很简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
使用ob娱乐下载\组件\控制台\输入\ArrayInput;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输出\OutputInterface;/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出){美元命令=美元这- >getApplication ()- >找到(“演示:问候”);美元参数= (“命令”= >“演示:问候”,“名字”= >“法”,”,大喊“= >真正的,);美元greetInput=新ArrayInput (美元参数);美元returnCode=美元命令- >运行(美元greetInput,美元输出);/ /……}
首先,你find ()您想要执行的命令通过命令名称。然后,您需要创建一个新的ArrayInput的参数和选择你想传递给命令。
最终,调用run ()
方法实际上执行命令并返回从命令返回的代码(从命令的返回值execute ()
方法)。
提示
如果你想抑制执行命令的输出,通过NullOutput作为第二个参数$命令- > run ()
。
谨慎
注意所有的命令将运行在相同的进程和一些Symfony的内置命令可能不适合这种方式。ob娱乐下载例如,缓存:清晰
和缓存:热身
命令改变一些类定义,所以运行后他们可能会打破的东西。
请注意
大部分的时候,从代码调用命令不执行命令行并不是一个好主意。主要原因是控制台的命令的输出进行了优化,而不是通过其他命令。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。