Homestead版本:2.0.7
Laravel版本:4.2.16
我刚刚开始学习Laravel,我对使用start.php和homestead.yaml的环境配置之间的区别感到困惑。这就是我所拥有的:
start.php:
$env = $app->detectEnvironment(array(
'local' => array('josh-linux'),
'production' => array('homestead')
));
homestead.yaml:
variables:
- key: APP_ENV
value: testing123
如果我运行' php artisan env'在终端里,它说“本地”,如果我进入我的宅基地并运行“php artisan env”。它说' production'这就是我所期待的。 (我只是把生产'放在那里测试返回的值)。
如果我在hello.php中抛出<?php var_dump(getenv('APP_ENV')) ?>
并刷新页面,它会显示&#39; testing123&#39;,这是homestead.yaml中APP_ENV的设置。
我只是想知道每个人的使用时间?如果在start.php文件中进行环境检测,APP_ENV值的目的是什么,反之亦然?另外,我应该有本地的&#39;寻找我的机器名称和宅基地名称?因为我也不确定是否能够发现“宅基地”。环境。 (这是我第一次使用VM的经历,所以我确定有一些我不知道的东西。)
答案 0 :(得分:0)
在laravel应用程序中获取环境的唯一方法应该是
$environment = app()->environment();
或通过帮手立面
$environment = App::environment();
这可确保您不会得到不同的结果。
如果您想使用homestead.yaml
环境变量而不是laravel 4的标准start.php
,可以在start.php
中将其更改为
$env = $app->detectEnvironment(function()
{
return getenv('APP_ENV') ?: 'production';
});
现在它会查找APP_ENV
变量,如果没有找到,则默认为production
。
php artisan env
命令应输出与App::environment();
注意
如果您在laravel 4.2和5.0之间切换,请确保您已记住环境技术稍有改变。请参阅此处了解更多信息:
Laravel 4.2:http://laravel.com/docs/4.2/configuration#environment-configuration
Laravel 5.0:http://laravel.com/docs/5.0/configuration#environment-configuration