Laravel环境类型列表

时间:2018-03-09 21:29:15

标签: php laravel environment-variables

我想知道Laravel默认支持哪些环境。我知道“生产”和“本地”两种可用,但没有其他的?如果是这样,它如何改变日志记录的行为。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

对框架意味着什么的唯一值是productiontestinglocal

当您的环境为production时,这只会为某些工匠命令(例如迁移,播种)添加一些额外的保护。在production中时,必须使用--force选项运行这些命令。

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

当您的环境为local时,这会使App::isLocal()返回true。除非您自己使用过,否则此功能实际上并未在任何地方使用。

正如您所看到的,您可以自由地将环境值设置为您想要的任何内容,并且影响最小。如果您不使用production,则意外运行您不想要的破坏性工匠命令会更容易一些。如果您不使用testing,那么您的phpunit功能测试可能会出现CSRF令牌问题。如果您不使用local,则只有在您拥有依赖local环境的自定义代码时才会影响您。

关于环境的另一个注意事项:从Laravel 5.2.13开始,您可以为不同的环境提供不同的.env文件。 Laravel将首先查找.env.{environment}文件,如果它不存在,则只加载默认的.env文件。

因此,例如,您可以创建一个.env.testing文件,该文件将由您的phpunit测试使用(因为它们使用testing环境),并且它可以存在于您的{{1您正在开发或手动测试网站时使用的{}或.env文件。

答案 1 :(得分:0)

您可以更改作品。或者通过更改APP_DEBUGER的值来本地:TRUE / FALSE 虚假意味着生产。 True表示本地。

您可以添加尽可能多的环境变量,因为它不会导致任何问题。环境主要用于存储应用程序使用的凭证