构建单个命令应用程序
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
构建单个命令应用程序
在构建命令行工具时,您可能不需要提供多个命令。在这种情况下,每次都必须传递命令名是很乏味的。幸运的是,可以通过扩展应用程序来消除这种需求:
12 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
名称空间Acme\工具;使用ob娱乐下载\组件\控制台\应用程序;使用ob娱乐下载\组件\控制台\输入\InputInterface;类MyApplication扩展应用程序{/** *根据输入获取命令的名称。* *@paramInputInterface $input输入接口* *@returnstring命令名称*/受保护的函数getCommandName(InputInterface$输入){//返回命令的名称。返回“my_command”;}/** *获取始终可用的默认命令。* *@returnarray默认命令实例数组*/受保护的函数getDefaultCommands(){//保留核心默认命令以拥有HelpCommand//在使用——help选项时使用$defaultCommands=父::getDefaultCommands ();$defaultCommands[] =新MyCommand ();返回$defaultCommands;}/** *重写,以便应用程序不期望命令*名称是第一个参数。* /公共函数getDefinition(){$inputDefinition=父::getDefinition ();//清除正常的第一个参数,即命令名$inputDefinition->setArguments ();返回$inputDefinition;}}
当调用控制台脚本时,命令MyCommand
将一直被使用,而不必传递它的名称。
你还可以简化应用程序的执行方式:
1 2 3 4 5 6 7 8
#!/usr/bin/env php<?php/ / command.php使用Acme\工具\MyApplication;$应用程序=新MyApplication ();$应用程序->run ();
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。