php - 在 Symfony config env() helper 中使用解析操作符

标签 php symfony symfony4

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/

相关文章:

php - 使用多个参数将图像上传到服务器

php - 使用php清理html中的特殊字符

php - 如何在数组php中的值的开头和结尾添加单引号

javascript - 新表单 - 嵌入表单集合 - Symfony2

php - Symfony2 唯一 token 生成器

symfony - 如何在功能测试中使用 symfony 4 模拟服务?

Symfony 工作流程 - 是否可以使用学说关系作为状态持有者?

php - MySQL 日期存储为 12 小时,没有 AM/PM

php - 使用 Composer 创建 Symfony 项目

以占位符开头的 Yaml 翻译