环境变量的处理器
编辑该页面环境变量的处理器
使用env var配置Symfony应用程序ob娱乐下载是一种常见的做法,让你的应用程序真正的动态。
env var的主要问题是,它们的值只能是字符串和您的应用程序可能需要其他数据类型(整数、boolean、等等)。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(不是:FOO)
-
数据类型转换
喷火
bool(就像env (bool:……)
)除了它返回倒值(falsy值返回真正的
,这个值返回假
):- YAML
- XML
- PHP
1 2 3
#配置/ services.yaml参数:safe_for_production:' % env(不是:APP_DEBUG) %
-
env (int: FOO)
-
数据类型转换
喷火
int。 -
env(浮动:FOO)
-
数据类型转换
喷火
一个浮点数。 -
env (const: FOO)
-
发现命名常量值
喷火
:- 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-encoded字符串:- YAML
- XML
- PHP
1 2 3 4 5
#配置/包/ framework.yaml参数: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 6 7
#配置/包/ framework.yaml参数:env (REDIS_NODES):“127.0.0.1:6380 127.0.0.1:6381”服务:RedisCluster:类:RedisCluster参数:(空,“% env(洗牌:csv: REDIS_NODES) %”]
6.2
的
env(洗牌:……)
env var处理器是在Symfony 6.2中引入的。ob娱乐下载 -
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文件的路径的值喷火
env var和返回返回的值。- 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”:“秘密”}它返回“秘密”
-
env(默认:fallback_param: BAR)
-
检索参数的值
fallback_param
当酒吧
env var不可用:- 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 (string:关键:主持人:url: MONGODB_URL) %’,端口:' % env (int:关键:端口:url: MONGODB_URL) %’}用户名:' % env (string键:用户: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 ?超时= 3000”
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ mongodb.yamlmongo_db_bundle:客户:默认值:#……connectTimeoutMS:' % env (int:关键:超时:query_string: MONGODB_URL) %’
-
env(枚举:FooEnum:酒吧)
-
试图将一个环境变量转换为一个实际的
\ BackedEnum
价值。这种处理器的完全限定名\ BackedEnum
作为参数。1 2 3 4 5 6
# App \ Enum \环境字符串枚举环境:{情况下发展=“开发”;情况下生产=“刺激”;}
- YAML
- XML
- PHP
1 2 3
#配置/ services.yaml参数:typed_env:' % env(枚举:App \ enum \环境:APP_ENV) %’
6.2
的
env(枚举:……)
env var处理器是在Symfony 6.2中引入的。ob娱乐下载
也可以将任意数量的处理器:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9
#配置/包/ framework.yaml参数:env (AUTH_FILE):“% kernel.project_dir % / config / auth.json”谷歌:# 1。得到的值AUTH_FILE env var# 2。替换任何配置参数的值配置路径# 3。得到文件的内容存储在这条道路# 4。JSON-decodes文件的内容并返回它身份验证:' % env (json文件:解决:AUTH_FILE) % '
自定义环境变量处理器
也可以添加自己的处理器的环境变量。首先,创建一个类,它实现了EnvVarProcessorInterface:
1 2 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的配置,这已经为你做好了,谢谢自动配置。