如何风格一个控制台命令吗
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.7,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
如何风格一个控制台命令吗
2.7
欧宝娱乐app下载地址Symfony风格Symfony 2.7中引入了控制台命令。
在创建控制台命令时最无聊的任务之一是处理命令的输入和输出的样式。显示标题和表或用户提问涉及到大量重复的代码。
考虑例如代码用于显示的标题下面的命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/ / src / AppBundle /命令/ GreetCommand.php名称空间AppBundle\命令;使用欧宝娱乐app下载地址\包\FrameworkBundle\命令\ContainerAwareCommand;使用欧宝娱乐app下载地址\组件\控制台\输入\InputInterface;使用欧宝娱乐app下载地址\组件\控制台\输出\OutputInterface;类GreetCommand扩展ContainerAwareCommand{/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出){美元输出- >writeln (数组(' <信息> Lorem Ipsum悲哀坐Amet < / > ',' <信息> = = = = = = = = = = = = = = = = = = = = = = = = = = < / > ',”));/ /……}}
显示一个简单的标题需要三行代码,改变字体颜色,强调内容和标题后留下一个额外的空行。处理方式需要精心设计的命令,但它使他们不必要的代码。
为了减少样板代码,可以使用Symfony命令欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony风格指南。这些样式被实现为一组允许创建的辅助方法语义命令和忘记他们的样式。
基本用法
在你的命令中,实例化欧宝娱乐app下载地址SymfonyStyle类和通过输入美元
和输出美元
变量作为参数。然后,您可以开始使用任何帮手,如标题()
,它显示的标题命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/ / src / AppBundle /命令/ GreetCommand.php名称空间AppBundle\命令;使用欧宝娱乐app下载地址\包\FrameworkBundle\命令\ContainerAwareCommand;使用欧宝娱乐app下载地址\组件\控制台\风格\欧宝娱乐app下载地址SymfonyStyle;使用欧宝娱乐app下载地址\组件\控制台\输入\InputInterface;使用欧宝娱乐app下载地址\组件\控制台\输出\OutputInterface;类GreetCommand扩展ContainerAwareCommand{/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出){美元io=新欧宝娱乐app下载地址SymfonyStyle (美元输入,美元输出);美元io- >标题(“Lorem Ipsum悲哀坐Amet”);/ /……}}
辅助方法
的欧宝娱乐app下载地址SymfonyStyle类定义了一些辅助方法,涵盖最常见的由控制台命令的交互。
内容的方法
- text ()
-
它显示给定的字符串或字符串数组作为普通文本。这是有用的为用户呈现帮助信息和指令运行命令:
1 2 3 4 5 6 7 8 9 10 11
/ /短信的使用简单的字符串美元io- >文本(“Lorem ipsum悲哀坐amet”);/ /……/ /显示长消息时考虑使用数组美元io- >文本(数组(“Lorem ipsum悲哀坐amet”,“Consectetur adipiscing elit”,“Aenean坐amet arcu血液sem faucibus门”));
- 清单()
-
它显示一个无序列表的元素作为一个数组传递:
1 2 3 4 5
美元io- >清单(数组(“元素# 1 Lorem ipsum悲哀坐amet”,“元素# 2 Lorem ipsum悲哀坐amet”,“元素# 3 Lorem ipsum悲哀坐amet”));
- 表()
-
它显示给定数组的标题和行作为一个紧凑的表:
1 2 3 4 5 6 7 8
美元io- >表(数组(“标题1”,“标题2”),数组(数组(“细胞1 - 1”,“细胞1 - 2”),数组(“细胞2 - 1”,“细胞2 - 2”),数组(“细胞3 - 1”,“细胞3 - 2”)));
- 换行符()
-
它显示在命令输出一个空行。虽然它似乎有用,大多数时候你不需要它。原因在于,每一个助手已经增加了自己的空行,所以你不需要关心的垂直间距:
1 2 3 4 5
/ /输出一个空行美元io- >换行符();/ /输出三个连续的空行美元io- >换行符(3);
警告的方法
- 注意()
-
它显示给定的字符串或字符串数组作为警告。使用此辅助谨慎,以避免弄乱命令的输出:
1 2 3 4 5 6 7 8 9 10 11
/ /使用简单的字符串为简短的笔记美元io- >注意(“Lorem ipsum悲哀坐amet”);/ /……/ /显示长音时考虑使用数组美元io- >注意(数组(“Lorem ipsum悲哀坐amet”,“Consectetur adipiscing elit”,“Aenean坐amet arcu血液sem faucibus门”));
- 谨慎()
-
类似于
注意()
助手,但内容更突出强调。由此产生的内容就像一个错误消息,所以你应该避免使用这个帮手,除非必要:1 2 3 4 5 6 7 8 9 10 11
/ /使用简单的字符串为短的警告消息美元io- >谨慎(“Lorem ipsum悲哀坐amet”);/ /……/ /显示长警告消息时考虑使用数组美元io- >谨慎(数组(“Lorem ipsum悲哀坐amet”,“Consectetur adipiscing elit”,“Aenean坐amet arcu血液sem faucibus门”));