过去几个月中我们发表了差不多40篇关于 Symfony 4.1新功能 的博客。在本文中你可以发现其他一些细小但精彩的功能。
让 csrf_token() 毋须表单即可使用
Contributed by
Christian Flothmann
in #25197.
csrf_token() Twig function 目前仅当 Form组件 安装后才被注册。但是,这一功能却是有用的,例如,当 在登录表单中通过CSRF进行保护 ,你并不需要完整的表单组件时。
在 Symfony 4.1 中,你可以使用 csrf_token()
模板函数,毋须表单组件。
环境变量的 CSV 处理器
Contributed by
Kévin Dunglas
in #25627.
尽管不像其他格式比如 JSON 和 YAML 那样流行,某些程序还是会把它们的环境变量利用 CSV 格式来存储。在 Symfony 4.1 中你可以使用全新的 csv
处理器来把那些内容反解成 PHP 数组 (它使用的是 str_getcsv()
PHP 函数来完成转换):
1 2 3 4 5 | parameters:
env(some_parameter): 'foo,bar,baz'
some_option: %env(csv:some_parameter)%
# 'some_option' is array('foo', 'bar', 'baz') in the PHP app
# 'some_option' 在 PHP 程序中是数组 |
Combine this new csv
processor with the existing file:
processor to
parse the CSV encoded env vars stored in some file.
让 ProgressBar::setMaxSteps 公有
Contributed by
Gabriel Ostrolucký
in #26449.
在 Symfony 4.1 中这个方法是公有的,因此你可以在程序执行时动态地改变进度条的大小。这在极端情况下有用,比如一个大文件在下载完成之前显示进度条是:
1 2 3 4 5 6 7 8 9 10 11 12 | use Symfony\Component\Console\Helper\ProgressBar;
$bar = new ProgressBar($output);
$bar->start();
$bar->setProgress(2);
$bar->setMaxSteps(10);
$bar->setProgress(5);
$bar->setMaxSteps(100);
$bar->setProgress(10);
$bar->finish(); |
本例在控制台终端中显示如下进度条:
1 2 3 4 5 | 0 [----------------------------]
2 [==|-------------------------]
5/10 [==============|-------------] 50%
10/100 [==|-------------------------] 10%
100/100 [============================] 100% |
在 profiler 分析器中显示 DotEnv 变量
Contributed by
Roland Franssen
in #25166.
在 Symfony 4.1 中,由 DotEnv组件 创建的环境变量现在从其他环境变量中区分出来,独立显示在分析器中。这让你检查 .env
配置文件是否如预期般工作变得更容易: