我们刚刚开始工作,决定将Laravel用于所有未来的大型开发项目。我们目前正在讨论如何为max-uploads
,dev
和testing
设置变量。在我自己的个人项目中,我有类似的东西:
live
然后我在if(strpos(__FILE__,'/live/')) {
$currentEnv = 'live';
} else { ... }
的后面设置变量。 Laravel建议使用
每个安装的根目录中的自定义$currentEnv
文件(我认为这意味着它不受版本控制的影响)。
有人可以告诉我每种方法的优点和缺陷
答案 0 :(得分:3)
.env文件是您可以配置默认环境变量的应用程序的设置,请检查以下内容示例:
APP_ENV=local
APP_DEBUG=true
APP_KEY=AMpO3aZSVYhYKIAQyKch3G0efT3xGrve
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=test
DB_PASSWORD=test
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
如果您想在本地工作,可以设置:
APP_ENV=local
APP_DEBUG=true
在制作中,您可以设置:
APP_ENV=production
APP_DEBUG=false
答案 1 :(得分:1)
使用.env是有道理的,你可以在那里放任何你想要的东西,然后使用env()从.env文件中获取一个值。
是的.env文件不受版本控制。 您还可以为您的测试环境创建.env.testing
您还可以修改config /目录中的默认配置,或添加新配置,并使用Config检索这些值。
http://laravel.com/docs/5.1#configuration http://laravel.com/docs/5.1/helpers#method-env