在 Symfony config env() helper 中使用 resolve 运算符
Using the resolve operator in the Symfony config env() helper
This 文章介绍了类型转换和一些可以在 Symfony 配置中的 env()
助手内部使用的方便的运算符。除了 resolve:
运算符外,一切都很清楚。文章说:
The resolve: operator replaces container parameter names by their values:
我将拥有哪些名称取自环境变量值的参数?有什么意义?
在学说包的配置中使用,例如:
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)%'
我在谷歌上搜索了这个问题,但互联网上几乎没有任何信息,也没有向我说明任何问题。
DATABASE_URL
的实际值是多少,预期结果是什么?
示例来自 documentation:
parameters:
project_dir: '/foo/bar'
env(DB): 'sqlite://%%project_dir%%/var/data.db'
db_dsn: '%env(resolve:DB)%'
很简单。在您的示例中,您有:
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 将是:
url: 'sqlite://%kernel.project_dir%/var/data.db'
解决(示例)url 将是:
url: 'sqlite:///Users/your_name/whatever/directory/var/data.db'
This 文章介绍了类型转换和一些可以在 Symfony 配置中的 env()
助手内部使用的方便的运算符。除了 resolve:
运算符外,一切都很清楚。文章说:
The resolve: operator replaces container parameter names by their values:
我将拥有哪些名称取自环境变量值的参数?有什么意义?
在学说包的配置中使用,例如:
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)%'
我在谷歌上搜索了这个问题,但互联网上几乎没有任何信息,也没有向我说明任何问题。
DATABASE_URL
的实际值是多少,预期结果是什么?
示例来自 documentation:
parameters:
project_dir: '/foo/bar'
env(DB): 'sqlite://%%project_dir%%/var/data.db'
db_dsn: '%env(resolve:DB)%'
很简单。在您的示例中,您有:
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 将是:
url: 'sqlite://%kernel.project_dir%/var/data.db'
解决(示例)url 将是:
url: 'sqlite:///Users/your_name/whatever/directory/var/data.db'