【问题标题】:The environment contains invalid characters, it can only contain characters allowed in PHP class names. Symfony 4环境包含无效字符,它只能包含 PHP 类名中允许的字符。 Symfony 4
【发布时间】:2020-08-07 14:54:54
【问题描述】:

我从 symfony 3.4 迁移到 symfony 4.4

现在我在运行任何命令时都会出现此错误:

在 Kernel.php 第 478 行:

环境“.env.test.local”包含无效字符,只能包含PHP类名中允许的字符。

这是什么意思,我该如何解决这个问题?

Rigt 现在.env.test.local 文件为空。

【问题讨论】:

  • 您尝试过什么方法来解决此问题?请分享您当前的配置
  • 我什么都没试过。因为我首先不知道这个错误意味着什么。
  • @talhaamir 您正在尝试完成迁移到新的 Symfony 主要版本这一极其艰巨的任务,而无需任何 Symfony 知识?我讨厌听起来令人沮丧,但这不会发生。 3.4 已经很老了,并且有不同的方式来指定环境变量。 4.4 较新,但仍然有些过时。这个问题很大程度上取决于 3.4 项目的组织方式以及您如何迁移到 4.4。如果这是一个商业项目,那么请雇用某人。否则,请仔细检查文档以了解您正在阅读的版本。
  • @Cerad 是什么让你认为 Symfony 4.4 “过时”了?它已于 2019 年 11 月作为 LTS 版本发布,并将在 2022 年之前收到错误修复。我的许多客户更喜欢在 LTS 版本上运行他们的应用程序,以避免对 Sf 5.0 等版本的支持(该版本也在2019 年 11 月,已经停止支持!)
  • @NicoHaase - 我确实说过“有点过时”。定位 LTS 版本没有错。 5.1 进行了更多的配置调整。这类问题经常会吸引 cmets 基于错误的错误版本。特别是,虽然下面的答案可能基本正确,但 3.4 应用程序可能依赖于旧的 SYMFONY_APP 变量而不是 APP_ENV。没有升级过程的细节很难说。

标签: php symfony environment-variables composer-php symfony4


【解决方案1】:

您正在将APP_ENV 变量设置为.env.test.local(或者您正在使用--env=.env.test.local 标志执行bin/console)。

环境名称只能是test,而不是.env.test。
将您的 APP_ENV 变量(或您的 --env 标志)更改为 test。

【讨论】:

  • 我似乎无法理解您的回答。您能否详细解释一下或告诉我应该为此修改哪些文件?我也在 Windows 上使用 XAMPP。
  • 检查您的环境变量、phpunit.xml(或 xml.dist)、xampp 配置和所有 .env 文件。在其中一个地方,您应该会找到类似APP_ENV=.env.test.local 的内容。这导致了您所看到的问题。仅将值更改为 test
猜你喜欢
  • 2013-12-04
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
  • 1970-01-01
  • 2015-05-28
相关资源
最近更新 更多