如何调用其他命令
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何调用其他命令
如果一个命令依赖于在它之前运行的另一个命令,而不是要求用户记住执行的顺序,您可以直接自己调用它。如果您想创建一个“元”命令来运行一系列其他命令(例如,当生产服务器上的项目代码发生更改时需要运行的所有命令:清除缓存、生成Doctrine2代理、转储Assetic资产……),这也是有用的。
从另一个命令调用一个命令很简单:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
受保护的函数执行(InputInterface$输入, OutputInterface$输出){$命令=$这->getApplication ()->找到(“演示:问候”);$参数=数组(“命令”= >“演示:问候”,“名字”= >“法”,”,大喊“= >真正的,);$greetInput=新ArrayInput ($参数);$returnCode=$命令->运行($greetInput,$输出);/ /……}
首先,你find ()通过传递命令名称来执行的命令。然后,您需要创建一个新的ArrayInput使用要传递给命令的参数和选项。
最终,调用run ()
方法实际执行该命令并从该命令返回返回的代码(从命令的返回值)execute ()
方法)。
提示
如果您想抑制已执行命令的输出,请传递一个NullOutput正如第二个论点命令- > run ()
.
谨慎
请注意,所有命令都将在同一个进程中运行,Symfony的一些内置命令可能不能很好地以这种方式工作。ob娱乐下载例如,缓存:清晰
而且缓存:热身
命令会改变一些类的定义,所以在它们之后运行一些命令很可能会出错。
请注意
大多数情况下,从未在命令行上执行的代码中调用命令并不是一个好主意。主要原因是命令的输出针对控制台进行了优化,不能传递给其他命令。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。