如何调用其他命令吗

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何调用其他命令吗

如果正在运行一个命令取决于另一个之前你可以叫在控制台命令本身。这是非常有用的,如果一个命令取决于另一个命令或如果你想创建一个“元”命令运行一堆其他命令(例如,所有的命令都需要运行时项目的代码已经改变了在生产服务器上:清理缓存,生成学说代理,倾销网络资产,…)。

使用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
/ /……使用欧宝娱乐app下载地址\组件\控制台\命令;使用欧宝娱乐app下载地址\组件\控制台\输入\ArrayInput;使用欧宝娱乐app下载地址\组件\控制台\输入\InputInterface;使用欧宝娱乐app下载地址\组件\控制台\输出\OutputInterface;CreateUserCommand扩展命令{/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出):无效{美元命令=美元- >getApplication ()- >找到(“演示:问候”);美元参数= (“名字”= >“法”,”,大喊“= >真正的,);美元greetInput=ArrayInput (美元参数);美元returnCode=美元命令- >运行(美元greetInput,美元输出);/ /……}}

提示

如果你想抑制执行命令的输出,通过NullOutput作为第二个参数$命令- > run ()

谨慎

注意所有的命令将运行在相同的进程和一些Symfony的内置命令可能不适合这种方式。欧宝娱乐app下载地址例如,缓存:清晰缓存:热身命令改变一些类定义,所以运行后他们可能会打破的东西。

请注意

大部分的时候,从代码调用命令不执行命令行并不是一个好主意。主要原因是控制台的命令的输出进行了优化,而不是通过其他命令。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。