Symfony命令行组件Console component是我们的第二大受欢迎组件,每月一百万次以上的下载,以及2300多个项目正在使用它。在Symfony 2.8中,我们用一些新功能强化了该组件的实力。
允许使用表格列的样式 ¶
Symfony 2.8中能够对每一个表格列,定义不同的视觉效果。首先,实例化TableStyle
类来定义样式功能:
1 2 3 4 | use Symfony\Component\Console\Helper\TableStyle;
$rightAligned = new TableStyle();
$rightAligned->setPadType(STR_PAD_LEFT); |
然后,通过列的检索值,可钭这个自定义风格到任何一个表格列。
1 2 3 4 5 6 7 8 9 10 | use Symfony\Component\Console\Helper\Table;
$table = new Table($output);
$table->setHeaders(['#', 'Path', 'Size']);
$table->setColumnStyle(2, $rightAligned);
// ...
$table->render(); |
现在,当输出这个表格时,其第三列(数字检索值为2
)的内容将居右。
在quiet mode中显示异常 ¶
某些环境下,以--quiet
选项来运行命令行是常见的,用以避免显示内容。但有个问题是,在静默模式下若有异常发生,也将同样被抑制输出。
在Symfony 2.8中,当有这样一个错误发生时,“静默冗余模式”的行为被修改为始终显示异常细节。这将令你的开发变得简单,本功能维系于我们的Developer Experience commitment。
新增了一个进度条指示器helper ¶
progress bar helper能令你在某些任务中,为进度条创建超酷的动画指示器。在你能够预知任务将于何时完成时,它们是很有用的,如同你在Symfony Installer中所见到的下载进度条那样。
除了“旋转棒”之外,你还可以在进度条指示器处于“激活”的过程中,输出信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | use Symfony\Component\Console\Helper\ProgressIndicator;
$progress = new ProgressIndicator($output);
$progress->start('Starting...');
// do something ... 进行一些操作
$progress->advance();
// do something ... 进行一些操作
$progress->setMessage('Just started...');
// do something ... 进行一些操作
$progress->setMessage('Half way...');
// do something ... 进行一些操作
$progress->setMessage('Almost Done...');
// do something ... 进行一些操作
$progress->finish('Done.'); |
关于进度条指示器的另一个出色功能是,当操作系统不支持ANSI代码时,进度条输出被优雅的降级了: