This文章介绍了类型转换和一些可以在 env()
中使用的便捷操作符。 Symfony 配置中的帮助程序。除了 resolve:
一切都清楚了运算符(operator)。文章说:
The resolve: operator replaces container parameter names by their values:
我将要使用哪些名称取自 env 变量值的参数?重点是什么?
它用于学说包的配置中,例如:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
# With Symfony 3.3, remove the `resolve:` prefix
url: '%env(resolve:DATABASE_URL)%'
我在谷歌上搜索这个问题,但互联网上几乎没有信息,也没有向我澄清任何事情。
最佳答案
这很简单。在您的示例中,您有:
url: '%env(resolve:DATABASE_URL)%'
如果 DATABASE_URL 值本身包含任何容器参数,如 Romain 示例:
parameters:
env(DATABASE_URL): 'sqlite://%kernel.project_dir%/var/data.db'
db_dsn: '%env(resolve:DB)%'
由于 DATABASE_URL 包含 %kernel.project_dir% 参数,这将是您项目的根目录。
通过使用 resolve,您可以将这个 %kernel.project_dir% 参数替换为其值。
没有解析网址将是:
url: 'sqlite://%kernel.project_dir%/var/data.db'
使用解析(示例)网址将是:
url: 'sqlite:///Users/your_name/whatever/directory/var/data.db'
关于php - 在 Symfony config env() helper 中使用解析操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48459946/