Laravel 4.1 removed the feature使用域来检测应用程序运行的环境.阅读他们现在建议使用主机名的文档.但是,对我来说,如果你在一个团队中工作,这似乎很麻烦.是否每个人都应该更改bootstrap / start.PHP文件并添加自己的主机名,以便能够在开发环境中运行应用程序?另外,如果您想在同一台机器上拥有两个不同的环境,该怎么办?
如果您在Laravel 4.1团队中工作,如何最好地检测环境?
这是我在bootstrap / start.PHP文件中的设置:
$env = $app->detectEnvironment(function() use($app) { return getenv('ENV') ?: ($app->runningInConsole() ? 'local' : 'production'); });
在我的例子中,这个方法不是默认数组,而是使用三元返回闭包.这样我就可以更灵活地选择理想的环境.您也可以使用switch语句. Laravel将读取返回值并自行配置.
使用getenv本机功能,我只是在听一个给定的环境.如果我的应用程序在服务器上,那么它将“选择”服务器配置.如果在本地,那么它将选择本地(或开发)
并且不要忘记在app / config中为您创建自定义目录
还有测试环境,每次你是单元测试应用程序时自动选择.
Laravel使环境工作变得非常有趣.
更新:
在环境中,我们主要关注数据库凭据.
对于生产我使用Fortrabbit,所以在服务器上配置新的应用程序时,fortrabbit正在为我生成这些值.我只需要声明它们.例如数据库或数据库的DB …或DB_HOST或HOST …在本地,这些值是您用于localhost / MysqL设置的值.