php - 预期 int,但得到了 redis 端口的字符串
问题描述
我有这个docker配置:
# docker-compose.yml
environment:
REDIS_SERVER: redis
REDIS_PORT: 6379
然后在 symfony 中我使用它来配置参数:
# parameters.yml
redis_port: %env(REDIS_PORT)%
And then I use the parameter to configure Picmore's cache:
```yaml
# pimcore.yml
cache:
pools:
redis:
enabled: true
connection:
port: '%redis_port%'
但我得到了错误
路径“pimcore.cache.pools.redis.connection.port”的类型无效。预期 int,但得到字符串。
错误很明显,但我无法解决,我尝试了不同的选项:
redis_port: '%env(REDIS_PORT)%'
redis_port: '%env(int:REDIS_PORT)%'
但我得到同样的错误。我怎样才能解决这个问题?
解决方案
您使用的是 Symfony 3.3,但int
环境变量预处理器直到 Symfony 3.4 才添加,根据this。
我认为您不能使用 env vars 来配置此值,因为默认情况下环境变量是字符串。
您的选择是为不同的环境使用不同parameters
的文件,就像当时所做的那样(我知道使用容器时可能会不方便);或升级到最新版本的 Symfony。
推荐阅读
- c# - EF Core 3.1 向迁移历史表添加自定义列
- python - 写入现有的 .txt 文件 - Escribir en archivos .txt ya existentes
- javascript - 使用startsWith作为自定义管道
- c# - 如何修复部署失败的 Azure 部署槽?
- c++ - 反向和计数字符串的c ++问题
- python - 计划在特定时间和日期运行使用 pyinstaller 创建的 .exe 文件。(不是任务计划程序)
- java - 如何列出该类中可变的Java类中的所有变量
- java - 如何在 Spring 中使用带有 @Scheduled 注解的 Cron 表达式?
- web-scraping - 抓取谷歌搜索结果并获取谷歌用来定义它的类别
- c++ - 为什么 std::variant 与比较类不在同一命名空间时找不到 operator<()