Symfonyob娱乐下载 2.8:控制台样式指南中的新功能
2015年12月7日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
凯文债券,哈维尔Eguiluz在# 14057.
看一看您为自己的Symfony应用程序开发的任何命令的代码。ob娱乐下载它的源代码很可能是“一团乱”,将内容和表示混合在一起。例如,要在命令的输出中显示一个标题,你可以使用以下常见的选项:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
//选项1$格式化程序=$这->getHelperSet ()->get (“格式化程序”);$formattedBlock=$格式化程序->formatBlock (" Lorem Ipsum Dolor Sit Amet ",”,真正的);$输出->writeln ($formattedBlock);//选项2$标题=" Lorem Ipsum Dolor Sit Amet ";$输出->writeln (' <信息> '.$标题.“> < /信息”);$输出->writeln(函数(“=”strlen ($标题)));//选项3$输出->writeln (”);$输出->writeln ('Lorem Ipsum Dolor Sit met>' );$输出->writeln (' <信息 >-------------------------->');$输出->writeln (”);
几个月前,我们决定通过引入新的Symfony命令样式指南ob娱乐下载.这些样式在Symfony 2.7中可用,但我们真正开始使用它ob娱乐下载们是在Symfony 2.8中。使用web应用程序的类比,这些样式允许您创建语义控制台命令,并忘记它们的样式和行为。你的命令只是定义“HTML”和风格指南是“引导和jQuery”,使他们生活。
在命令中使用新的样式指南与实例化样式指南一样简单ob娱乐下载SymfonyStyle
类,将输入美元
而且输出美元
你的命令:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
名称空间AppBundle\命令;使用ob娱乐下载\包\FrameworkBundle\命令\ContainerAwareCommand;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输出\OutputInterface;使用ob娱乐下载\组件\控制台\风格\ob娱乐下载SymfonyStyle;类MyCommand扩展ContainerAwareCommand{受保护的函数配置(){/ /……}受保护的函数执行(InputInterface$输入, OutputInterface$输出){$io=新ob娱乐下载SymfonyStyle ($输入,$输出);/ /……}}
我们建议您为这个变量命名io美元
因为您将同时使用它进行输入和输出操作。按照上面所示的相同示例,这是如何在命令中输出标题的:
1
$io->标题(" Lorem Ipsum Dolor Sit Amet ");
ob娱乐下载Symfony将为您处理样式细节:它将更改字体颜色,它将在标题前后添加换行符,它将显示带下划线的标题文本。
样式指南包含了很多常见的快捷方法,比如显示一个表格:
1 2 3 4 5 6 7
$头= (“参数”,“价值”];$行= [[“Param1”,“Value1”]、[“Param2”,“Value2”]];$io->表($头,$行);
风格指南的API简洁,富有表现力和直观,以缓解其学习曲线:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
$io=新ob娱乐下载SymfonyStyle ($输入,$输出);//公共输出元素$io->标题(字符串$消息);$io->部分(字符串$消息);$io->文本(字符串|数组$消息);$io->评论(字符串|数组$消息);//更高级的输出元素$io->注意(字符串|数组$消息);$io->谨慎(字符串|数组$消息);$io->清单(数组$元素);$io->表(数组$头,数组$行);//请求用户输入$io->问(字符串$问题、字符串|零$默认的=零,可调用的|零$验证器=零);$io->askHidden(字符串$问题,可调用的|零$验证器=零);$io->确认(字符串$问题bool,$默认的=真正的);$io->选择(字符串$问题,数组$选择int,字符串| |零$默认的=零);//显示命令或重要任务的结果$io->成功(字符串|数组$消息);$io->错误(字符串|数组$消息);$io->警告(字符串|数组$消息);
实际上,上面的每个元素在命令输出中都是这样显示的:
使用这个新的风格指南的主要优点是:
- 它使您的命令看起来一致,节省了您为每个命令应用哪种样式的大量时间。
- 它减少了命令中的大量冗余,减少了用于定义信息表示的数百行代码。
- 它只需要您导入一个类(
ob娱乐下载SymfonyStyle
),而不是很多不同的类(表格
,ProgressBar
,ChoiceQuestion
,ConfirmationQuestion
等)。
欧宝官网下载app这个样式指南的文档还没有准备好,但是您可以看看内置的Symfony 2.8或3.0命令的源代码,它们已经完全重新设计了。ob娱乐下载
发表在#生活在边缘
评论
@Emanuele这不是完全故意的,但我们想提供一个熟悉和中性的外观,没有花哨或时尚。
很高兴终于看到一篇关于这个功能的博文!
这一款自发行以来就失去了一些爱:D
这一款自发行以来就失去了一些爱:D
阿里Mechichi
2015年12月7日在11:15
就像你在SymfonyCon上说的,非常快ob娱乐下载的发布!祝贺你,谢谢!
当然,这是一个非常有用/重要的功能!: D
当然,这是一个非常有用/重要的功能!: D
Artem Ostretsov
2015年12月7日在12:28
不错的功能!
丹尼斯Fridrich
2015年12月7日在13:32
非常有用的帮手,谢谢!
Alex Rock is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now现在我有大量的命令来重构这个!!