用途:在 Symfony 项目中新增或修改环境变量、参数或密钥时使用;当某个值在 dev、test、prod 等环境间存在差异,或需要对环境变量做类型转换与解析(int:、bool:、json:、csv:、file:),以及把凭据存入 Symfony secrets vault 时适用。
主要能力:决定值的存放位置(.env 默认值、.env.local、真实环境变量或 vault);以安全的已提交默认值声明变量,绝不写入真实凭据;通过 %env(...)% 配合正确的 processor,经参数或 #[Autowire] 注入;把环境专属设置放入 config/packages/<env>/ 或 when@<env> 块;在服务中对必填值为空时快速失败。
使用方式与限制:注意加载顺序为 .env、.env.local(test 环境跳过)、.env.<env>、.env.<env>.local;生产环境应在服务器或容器环境中设置变量,而非文件。切勿提交 .env.local、.env.*.local 或 vault 解密密钥。环境变量在处理前均为字符串,需显式转换,不要用 "false" 与 false 比较。输出契约要求说明每个新值在各环境的定义位置、注入点与所用 processor,以及加入 vault 的密钥名称(不打印内容)。深度实现细节需查阅 reference.md。