Symfony 5.4中integerNode验证早于环境变量处理器执行问题
Symfony 5.4环境变量配置验证异常问题解析
在Symfony 5.4中配置环境变量转整数时遇到异常:使用%env(int:TWO_FACTOR_TRUSTED_COOKIE_LIFETIME)%将环境变量转为整数配置时,该值始终被识别为0,触发integerNode的min(1)验证错误;若去掉类型转换,则会抛出「期望int类型,实际为string」的错误。修改min(0)后,容器最终能获取到正确的环境变量值,这说明配置验证步骤早于环境变量处理器执行。
复现步骤
- 修改
/vendor/symfony/framework-bundle/DependencyInjection/Configuration.php中的cookie_lifetime节点为:->integerNode('cookie_lifetime')->min(1)->end() - 在
.env文件中添加:GENERAL_COOKIE_LIFETIME=3600 - 在
framework配置中设置session.cookie_lifetime为%env(int:GENERAL_COOKIE_LIFETIME)% - 执行命令
php bin/console cache:clear即可复现错误
内容的提问来源于stack exchange,提问作者Julesezaar
相关产品推荐
相关产品推荐

