Symfonyob娱乐下载 4.4新功能:依赖注入改进(第1部分)
将容器转储到一个文件中
提供的
尼古拉斯Grekas
在# 32581.
最初,Symfony容器ob娱乐下载被编译并转储到一个大的PHP文件中。然后我们将其更改为允许将每个服务转储到其自己的小PHP文件中。在Syob娱乐下载mfony 4.4中,我们添加了一个新的配置选项,允许将容器再次转储到一个大的单个文件中。
默认情况下,所有新的Symfony应用程序都启用了该功能,但是您也可以为您的现ob娱乐下载有应用程序启用它src / Kernel.php
文件:
12 3 4 5 6 7 8 9 10 11 12 13
类内核扩展BaseKernel{/ /……受保护的函数configureContainer(ContainerBuilder$容器, LoaderInterface$加载程序):无效{/ /……$容器->setParameter (“container.dumper.inline_factories”,真正的);/ /……}}
导入文件时忽略错误
提供的
Andrej Hudec
在# 31310.
当导入配置文件,你可以使用ignore_errors:真
选项以静默方式忽略任何丢失的文件。但是,该选项也会忽略存在但包含语法错误的文件。在Syob娱乐下载mfony 4.4中,我们为这个选项添加了一个新值,这样你就可以只忽略丢失的文件,而不忽略有语法错误的文件:
1 2 3
进口:如果'parameters. #将显示一个错误。Yaml存在,但包含语法错误-{资源:“parameters.yaml”,ignore_errors:“not_found”}
允许在环境变量中使用Base64url值
提供的
尼古拉斯Grekas
在# 34014.
在URL中使用标准Base64需要编码+
,/
而且=
字符。这就是为什么RFC 4648定义了一个名为Base64url的Base64变体,它对url和文件名是安全的。Base64url取代+
通过-
而且/
通过_
(并使跟踪=
可选)。
在Syob娱乐下载mfony 4.4中,我们改进了base64
环境变量处理机也允许解析base64url值。您不需要更改代码中的任何内容,因为Symfony可以自动检测base64url值并为您解析它们。ob娱乐下载
允许绑定带标签的服务
提供的
格雷戈勒Pineau
在# 33623.
按名称或类型绑定参数允许基于服务构造函数参数的名称和/或类型注入服务和参数。在Syob娱乐下载mfony 4.4中,您还可以注入可迭代和带标签的服务。
在下面的示例中,使用_instanceof
的类实现给定接口和_defaults.bind
Config将所有这些服务注入到any中iterable美元规则
构造函数参数:
1 2 3 4 5 6 7 8 9 10 11
#配置/ services.yaml服务:_instanceof:App \ Foo \ \ RuleInterface规则:标签:(“app.foo.rule”)_defaults:绑定:可迭代的规则:美元tagged_iterator !app.foo.rule#……
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
我们在过去演示了加载一组小文件比加载单个大容器文件要快。@lyrixx遇到的缺点在worker上也有:因为它们是长时间运行的,它们更有可能受到删除其中一个文件的影响。对于总是重新加载所有内容的请求,这种情况不会发生。
>
目前还不清楚PHP 7.4将如何改变性能方面的情况。通过预加载,单个大文件理论上可以同样快或更快。但无论如何,我们不会只支持PHP 7.4。如果确认了这一点,我们就可以在PHP 7.4中将这个参数设置为true,并在Symfony 6中删除它。ob娱乐下载
目前,这还不是默认设置。