Symfony 本地 Web 服务器未检测到 env 变量

标签 symfony

我正在使用 symfony 的本地 Web 服务器,每当我使用它时,它似乎都没有检测到 .env 文件中的所有环境变量,我不明白为什么会这样。

这是我加载网站时看到的内容:

error screen

如果我输入命令

php bin/console debug:dotenv

我看到了我所期望的一切。

我不明白为什么这不起作用,希望有人能帮助我理解我可能做错了什么。

最佳答案

我对此做了更多研究,因为我对 $_ENV 有变量但 getenv 没有变量这一事实感到困惑。有一个discussion有关此主题的更多详细信息。最重要的是,使用 putenv/getenv 不是线程安全的,可能会导致某些 Apache 配置出现问题。

但是,假设您接受风险,则可以告诉 Symfony 使用 putenv。它是 runtime 的一部分组件。

更新composer.json就可以了。

    "extra": {
        "runtime": {
            "use_putenv": true
        },

请务必在编辑composer.json后运行composer dump-autoload,以便您的更改反射(reflect)在vendor/autoload_runtime.php中

不用说,您仍然应该注入(inject)变量,但如果您确实需要使用 getenv (可能是遗留代码),那么您可以这样做。

关于Symfony 本地 Web 服务器未检测到 env 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75915630/

相关文章:

symfony - 如何将运行时变量传递到react/webpack模块中

Symfony 2 - 在 Controller 外部设置 Flash 消息

symfony - 在 JMS 中序列化对象时包含方法

templates - Sonata管理员 bundle -表单类型: sonata_type_collection - custom template?

Symfony 从 Controller 调用命令作为后台任务

symfony - Sonata 管理包 + Sonata 用户包 : Override Login Form

php - 如何为 symfony Controller 编写 php 单元测试用例

css - 在同一行对齐表单输入

symfony - 如何使用变量处理 Twig 文件中的翻译?

performance - 使用 Doctrine 2.1 EXTRA_LAZY 关联加快分页