Laravel 4.2 - 环境检测 - homestead.yaml 对比 start.php
Laravel 4.2 - Environment detection - homestead.yaml vs. start.php
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' 在终端中显示 'local',如果我 ssh 进入我的 homestead 框和 运行 'php artisan env' 它说 'production',这是我所期望的。 (我只是将 'production' 放入其中以测试返回值)。
如果我在 hello.php 中抛出 <?php var_dump(getenv('APP_ENV')) ?>
并刷新页面,它会显示 'testing123',这是 homestead.yaml 中 APP_ENV 的设置。
我只是不知道什么时候使用每一个?如果在 start.php 文件中进行环境检测,那么 APP_ENV 值的用途是什么,反之亦然?另外,我是否应该 'local' 查找我的机器名称和 homestead 框名称?因为我也不确定检测 'homestead' 环境的意义。 (这是我第一次使用虚拟机,所以我确定我遗漏了什么)。
在您的 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();
相同的结果
Note
If you switch between laravel 4.2 and 5.0 make sure that you have in mind that the environment technique changed a little. See here for mor information:
Laravel 4.2: http://laravel.com/docs/4.2/configuration#environment-configuration
Laravel 5.0: http://laravel.com/docs/5.0/configuration#environment-configuration
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' 在终端中显示 'local',如果我 ssh 进入我的 homestead 框和 运行 'php artisan env' 它说 'production',这是我所期望的。 (我只是将 'production' 放入其中以测试返回值)。
如果我在 hello.php 中抛出 <?php var_dump(getenv('APP_ENV')) ?>
并刷新页面,它会显示 'testing123',这是 homestead.yaml 中 APP_ENV 的设置。
我只是不知道什么时候使用每一个?如果在 start.php 文件中进行环境检测,那么 APP_ENV 值的用途是什么,反之亦然?另外,我是否应该 'local' 查找我的机器名称和 homestead 框名称?因为我也不确定检测 'homestead' 环境的意义。 (这是我第一次使用虚拟机,所以我确定我遗漏了什么)。
在您的 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();
Note
If you switch between laravel 4.2 and 5.0 make sure that you have in mind that the environment technique changed a little. See here for mor information:
Laravel 4.2: http://laravel.com/docs/4.2/configuration#environment-configuration
Laravel 5.0: http://laravel.com/docs/5.0/configuration#environment-configuration