如何基于复杂表达式注入值
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何基于复杂表达式注入值
服务容器还支持“表达式”,允许您将非常特定的值注入到服务中。
例如,假设您调用了一个服务(这里没有显示)应用\ \ MailerConfiguration邮件
,它有一个getMailerMethod ()
方法。这将返回一个类似字符串的类型sendmail
基于一些配置。
假设你想把这个方法的结果作为构造函数参数传递给另一个服务:App \梅勒
.一种方法是用一个表达式:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8
#配置/ services.yaml服务:#……邮件\ App \ MailerConfiguration:~App \梅勒:参数:[" @ =服务(“应用邮件\ \ \ \ \ \ \ \ MailerConfiguration”).getMailerMethod ()”)
有关表达式语言语法的详细信息,请参见表达式语法.
在这种情况下,您可以访问2个函数:
-
服务
- 返回一个给定的服务(参见上面的例子)。
-
参数
-
返回一个特定的参数值(语法就像
服务
).
您还可以访问容器通过一个容器
变量。下面是另一个例子:
- YAML
- XML
- PHP
1 2 3 4
#配置/ services.yaml服务:App \梅勒:参数:[" @ = container.hasParameter(“some_param”)?参数(“some_param”):“default_value””)
表达式可以用在参数
,属性
,作为与配置器
作为论证调用
(方法调用)。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。