读过本系列的第一部分和第二部分两篇文章,可以了解到Symfony 3.2版的Console组件新功能。
添加对“多行文本”样式选项的支持 ¶
注意 本小节出现的两个链接还没有来得及翻译,过段时间待文档数量增加后,即可正常显示。
控制台命令行的输出,可以使用这些文本样式中的任何一个来改变它的外观:bold
、underscore
、blink
、reverse
、和conceal
。在Symfony 3.2中,对单一内容你可以组合一个以上的文本样式(比如显示一些具有粗体和下划线的文本):
1 | $output->writeln('<fg=green;options=bold,underscore>Test</>'); |
在任何场景下都要记得,Symfony提供了一个简单的办法,以一种“具有一致性”的方式来应用相同的样式到你的控制台命令中。
添加对私有命令的支持 ¶
默认的Symfony命令行是公有的(public),所以在使用bin/console
或bin/console list
时,它们始终被包容到命令行列表中。在Symfony 3.2中,你可以从列表中的那些命令中移除一些,使用setPublic(false)
方法可以令其私有(private):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // src/AppBundle/Command/FooCommand.php
namespace AppBundle\Command;
use Symfony\Component\Console\Command\Command;
class FooCommand extends Command
{
protected function configure()
{
$this
->setName('app:foo')
// ...
->setPublic(false)
;
}
} |
私有命令在行为上和公有命令是一样的,可以像以往一样执行,但它们不在显示在命令列表中,所以末级用户将无视他们的存在。它们最为适合充当“设计给程序中遗产部分”的命令,以及通过计划任务来独家执行的命令,等等。