环境变量处理器
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
环境变量处理器
使用env vars配置Symfony应用程序ob娱乐下载是使应用程序真正动态的常用实践。
env变量的主要问题是它们的值只能是字符串,而应用程序可能需要其他数据类型(整数、布尔值等)。ob娱乐下载Symfony用“env var处理器”解决了这个问题,它转换给定环境变量的原始内容。类型的值,下面的示例使用整数处理器HTTP_PORT
将Env var转换为整数:
- YAML
- XML
- PHP
1 2 3 4
#配置/包/ framework.yaml框架:路由器:http_port:' % env (int: HTTP_PORT) %
内置环境变量处理器
ob娱乐下载Symfony提供了以下env var处理器:
-
env(字符串FOO):
-
数据类型转换
喷火
对字符串:- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env(秘密):“some_secret”框架:秘密:' % env(字符串:秘密)%
-
env (bool: FOO)
-
数据类型转换
喷火
到一个bool (真正的
值是“真正的”
,“上”
,“是的”
除了所有的数字0
而且0.0
;其他的都是假
):- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env (HTTP_METHOD_OVERRIDE):“真正的”框架:http_method_override:' % env (bool: HTTP_METHOD_OVERRIDE) %
-
env (int: FOO)
-
数据类型转换
喷火
整型。 -
env(浮动:FOO)
-
数据类型转换
喷火
到花车上去。 -
env (const: FOO)
-
查找中命名的const值
喷火
:- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ security.yaml参数:env (HEALTH_CHECK_METHOD):“ob娱乐下载Symfony \ HttpFoundation \ \组件请求:METHOD_HEAD”安全:access_control:-{路径:$ ^ /健康检查的,方法:' % env (const: HEALTH_CHECK_METHOD) %}
-
env (base64: FOO)
-
的内容进行解码
喷火
,这是一个base64编码的字符串。 -
env (json: FOO)
-
的内容进行解码
喷火
,这是一个JSON编码的字符串。它返回一个数组或零
:- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env (TRUSTED_HOSTS):”(“10.0.0.1”表示,“10.0.0.2”)”框架:trusted_hosts:' % env (json: TRUSTED_HOSTS) %
-
env(解决:FOO)
-
如果的内容
喷火
包含容器参数(使用语法% parameter_name %
),将参数替换为参数的值:- YAML
- XML
- PHP
1 2 3 4 5 6 7
#配置/包/ sentry.yaml参数:env(主持人):“10.0.0.1”表示sentry_host:' % env(主机)%env (SENTRY_DSN):“http://%sentry_host%/project”哨兵:dsn:' % env(解决:SENTRY_DSN) %
-
env (csv: FOO)
-
的内容进行解码
喷火
,这是一个csv编码的字符串:1 2 3 4
参数:env (TRUSTED_HOSTS):“10.0.0.1,表示10.0.0.2”框架:trusted_hosts:' % env (csv: TRUSTED_HOSTS) %
-
env(文件:FOO)
-
属性的值所表示的文件的内容
喷火
env var:- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env (AUTH_FILE):“. . / config / auth.json”谷歌:身份验证:' % env(文件:AUTH_FILE) %
-
env(要求:FOO)
-
要求()
的值所对应的PHP文件喷火
并返回从它返回的值。- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env (PHP_FILE):“. . / config / .runtime-evaluated.php”应用:身份验证:' % env(要求:PHP_FILE) %
-
env(修剪:FOO)
-
的内容
喷火
Env var,删除字符串开头和结尾的空格。这在与文件
处理器,因为它会删除文件末尾的换行符。- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数:env (AUTH_FILE):“. . / config / auth.json”谷歌:身份验证:' % env(修剪:文件:AUTH_FILE) % '
-
env(关键:FOO: BAR)
-
检索与键关联的值
喷火
对象中存储内容的数组酒吧
env var:- YAML
- XML
- PHP
1 2 3 4 5
#配置/ services.yaml参数:env (SECRETS_FILE):' / opt /应用程序/ .secrets.json 'database_password:' % env(关键:database_password: json文件:SECRETS_FILE) %’#如果SECRETS_FILE的内容是:{"database_password": "secret"}则返回"secret"
-
env(默认:fallback_param: BAR)
-
检索参数的值
fallback_param
当酒吧
Env变量不可用:- YAML
- XML
- PHP
1 2 3 4 5
#配置/ services.yaml参数:如果PRIVATE_KEY不是一个有效的文件路径,则返回raw_key的内容private_key:' % env(默认:raw_key:文件:PRIVATE_KEY) %’raw_key:' % env (PRIVATE_KEY) %
当省略回退参数时(例如。
env(默认:API_KEY)
),则返回值为零
. -
env (url: FOO)
-
解析一个绝对URL,并将其组件作为关联数组返回。
1 2
# .envMONGODB_URL =“mongodb: / / db_user: db_password@127.0.0.1:27017 / db_name”
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11
#配置/包/ mongodb.yamlmongo_db_bundle:客户:默认值:主机:-{主持人:' % env(关键:主持人:url: MONGODB_URL) % ',端口:' % env(关键:端口:url: MONGODB_URL) %’}用户名:' % env(关键:用户:url: MONGODB_URL) %’密码:' % env(关键:通过:url: MONGODB_URL) %’连接:默认值:database_name:' % env(关键:路径:url: MONGODB_URL) %’
谨慎
为了便于从URL中提取资源,将
/
从路径
组件。 -
env (query_string: FOO)
-
解析给定URL的查询字符串部分,并将其组件作为关联数组返回。
1 2
# .envMONGODB_URL =“mongodb: / / db_user: db_password@127.0.0.1:27017 / db_name吗?timeout = 3000”
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ mongodb.yamlmongo_db_bundle:客户:默认值:#……connectTimeoutMS:' % env (int:关键:超时:query_string: MONGODB_URL) %’
也可以组合任意数量的处理器:
1 2 3 4 5 6 7 8
参数:env (AUTH_FILE):“% kernel.project_dir % / config / auth.json”谷歌:# 1。获取AUTH_FILE环境变量的值# 2。替换任何配置参数的值以获取配置路径# 3。获取存储在该路径中的文件的内容# 4。json -解码文件的内容并返回它身份验证:' % env (json文件:解决:AUTH_FILE) % '
自定义环境变量处理器
也可以为环境变量添加自己的处理器。首先,创建实现的类EnvVarProcessorInterface:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用ob娱乐下载\组件\DependencyInjection\EnvVarProcessorInterface;类LowercasingEnvVarProcessor实现了EnvVarProcessorInterface{公共函数采用($前缀,$的名字关闭,\$采用){$env=$采用($的名字);返回函数$env);}公共静态函数getProvidedTypes(){返回[“小写”= >“字符串”,);}}
要在应用程序中启用新处理器,请将其注册为服务和标记它与container.env_var_processor
标签。如果你在用默认的服务。yaml的配置,这已经为你做了,感谢自动配置.