环境变量的处理器

编辑该页面

环境变量的处理器

使用env var配置Symfony应用程序ob娱乐下载是一种常见的做法,让你的应用程序真正的动态。

env var的主要问题是,它们的值只能是字符串和您的应用程序可能需要其他数据类型(整数、boolean、等等)。ob娱乐下载Symfony“env var处理器”,解决了这个问题,变换的原始内容给出环境变量。下面的例子使用整数处理器的价值HTTP_PORTenv 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 (真正的值是“真正的”,“上”,“是的”和所有的数字除了00.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的配置,这已经为你做好了,谢谢自动配置

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
ob娱乐下载Symfony 6.2支持通过苏禄人
ob娱乐下载Symfony 6.2支持通过Les-Tilleuls.coop