我想知道Laravel默认支持哪些环境。我知道“生产”和“本地”两种可用,但没有其他的?如果是这样,它如何改变日志记录的行为。
另一件事是我相信我声明了一个自定义环境,它会导致任何意外行为吗?。
谢谢!
答案 0 :(得分:2)
对框架意味着什么的唯一值是production
,testing
和local
。
当您的环境为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表示本地。
您可以添加尽可能多的环境变量,因为它不会导致任何问题。环境主要用于存储应用程序使用的凭证