Laravel环境类型列表

Edg*_*ona 6 php environment-variables laravel

我想知道Laravel默认支持什么环境。我知道“生产”和“本地”两个可用,但是没有别的吗?如果是这样,它将如何改变日志记录的行为。

另一件事是,我相信我声明了一个自定义环境,它将导致任何意外行为吗?

谢谢!

pat*_*cus 11

唯一的价值是意味着什么框架是production,testing和local。

当您的环境为 时production,这只是为一些工匠命令(例如迁移、播种)增加了一点额外的保护。当 in 时production,这些命令必须与--force选项一起运行。

当您的环境是testing,这将带来App::runningUnitTests()回报true。这用于在运行 phpunit 测试时禁用验证 CSRF 令牌。phpunit.xmlLaravel 中的默认文件将环境设置为testing.

当您的环境是local,这将带来App::isLocal()回报true。这个函数实际上并没有在任何地方使用,除非你自己使用过。

如您所见,您可以自由地将环境值设置为您想要的任何值,而后果最小。如果您不使用production,则意外运行您不想要的破坏性工匠命令会稍微容易一些。如果您不使用testing,则您的 phpunit 功能测试可能会遇到 CSRF 令牌问题。如果您不使用local,则只有在您已经拥有依赖于local环境的自定义代码时才会影响您。

关于环境的另一边注:从 Laravel 5.2.13 开始,您可以.env为不同的环境使用不同的文件。Laravel 将首先查找该.env.{environment}文件,如果该文件不存在,则只会加载默认.env文件。

因此,例如,您可以创建一个.env.testing将由您的 phpunit 测试使用的文件(因为它们使用testing环境),并且它可以位于您开发或手动测试站点时使用的.env或.env.local文件旁边。