Symfonyob娱乐下载 3.2新增功能:YAML文件中的PHP常量
2016年6月30日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
YAML可以说是定义Symfony应用程序配置的最流行的格式。ob娱乐下载不幸的是,由于YAML格式的特性,它无法提供与其他格式(如XML)相同的特性。特别是,不可能在YAML文件中使用PHP常量,例如作为服务参数。
在Syob娱乐下载mfony 3.2中,我们决定增强YAML格式的自定义扩展支持PHP常量.如果YAML文件中的某些内容以! php /常量:
字符串,它现在被认为是一个PHP常量:
1 2 3 4 5 6 7
参数:#这被认为是一个常规字符串foo: PHP_INT_MAX#被认为是一个PHP常量酒吧:! php /常量: PHP_INT_MAX#从Symfony 3.4开始,ob娱乐下载使用下面的语法:酒吧:! php /常量PHP_INT_MAX
默认情况下,ob娱乐下载Symfony Yaml组件只解析/生成符合标准的YAML内容。因此,在使用独立Yaml组件时,必须显式地使用Yaml: PARSE_CONSTANT
国旗:
12 3 4 5 6 7 8 9 10 11 12 13 14 15
使用ob娱乐下载\组件\Yaml\Yaml;$yaml=php/const:PHP_INT_MAX YAML;//从Symfony 3.4开始,ob娱乐下载使用以下语法:$yaml=php/const PHP_INT_MAX YAML;$配置= Yaml::解析($yaml, Yaml::PARSE_CONSTANT);// $config = array('foo' => PHP_INT_MAX);
如果使用Symfony框架,则ob娱乐下载在YamlFileLoader由DependencyInjection组件使用。这意味着你可以在YAML服务中使用PHP常量:
1 2 3 4 5 6 7 8 9 10 11
# app / config / services.yml服务:app.my_service:#……参数:-“@app.other_service”——! php /常量实体:AppBundle \ \网站::MUM_ITEMS - !php/常量:ob娱乐下载 Symfony \ \ HttpKernel \内核组件::版本#从Symfony 3.4开始,ob娱乐下载使用下面的语法:——! php /常量AppBundle \实体\博客::MUM_ITEMS - !php/常量ob娱乐下载Symfony \ \ HttpKernel \内核组件::版本
发表在#生活在边缘
评论
托马斯Votruba
2016年6月30日分
好的调优!
我还会指出另一个用例:Product::class,例如实体存储库。
我还会指出另一个用例:Product::class,例如实体存储库。
@Tomáš您还需要类的名称空间来解析它,这将使“::class”无用。
Yasmany Cubela Medina
2016年6月30日在15:03
太好了。也许这不是正确的地方,因为我不知道这是否已经是可能的,从YAML文件读取ENV变量,例如:
服务:
app.my_service:
#……
参数:
——“@app.other_service”
——ENV_VAR
其中ENV_VAR是在用户会话范围上定义的env变量。
服务:
app.my_service:
#……
参数:
——“@app.other_service”
——ENV_VAR
其中ENV_VAR是在用户会话范围上定义的env变量。
@Yasmani你可能对这个PR感兴趣:https://github.com/symfony/symfony/pull/1815ob娱乐下载5
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now