This文章介绍了类型转换和一些方便的运算符,它们可以在Symfony配置中的env()
助手中使用。除resolve:
运算符外,一切都很清楚。文章说:
resolve:运算符用其值替换容器参数名称:
我将得到的参数名称取自env变量的值?有什么意义?
它在doctrine bundle的配置中使用,例如:
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)%'
我在谷歌搜索这个问题,但在互联网上几乎没有任何信息,它也没有向我澄清任何内容。
答案 0 :(得分:3)
这很简单。在您的示例中,您有:
<div class="courses-search-result standout-box-shadow <?php echo implode(' ', $classes); ?>">
如果DATABASE_URL值本身包含任何容器参数,例如Romain示例:
url: '%env(resolve:DATABASE_URL)%'
由于DATABASE_URL包含%kernel.project_dir%参数,该参数将成为项目的根目录。
通过使用resolve,您可以将此%kernel.project_dir%参数替换为其值。
没有解析网址的将是:
parameters:
env(DATABASE_URL): 'sqlite://%kernel.project_dir%/var/data.db'
db_dsn: '%env(resolve:DB)%'
带有解析(示例)的网址将是:
url: 'sqlite://%kernel.project_dir%/var/data.db'
答案 1 :(得分:0)
DATABASE_URL
的实际价值是什么以及预期结果是什么?
来自documentation的示例:
parameters:
project_dir: '/foo/bar'
env(DB): 'sqlite://%%project_dir%%/var/data.db'
db_dsn: '%env(resolve:DB)%'