如何调用其他命令吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何调用其他命令吗
如果正在运行一个命令取决于另一个之前你可以叫在控制台命令本身。这是非常有用的,如果一个命令取决于另一个命令或如果你想创建一个“元”命令运行一堆其他命令(例如,所有的命令都需要运行时项目的代码已经改变了在生产服务器上:清理缓存,生成学说代理,倾销网络资产,…)。
从另一个调用命令很简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用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许可证。