配置

介绍

所有的 Lumen 框架的配置信息都存储在 .env 文件中。

获取设置值

你可以使用 config 辅助函数获取你的设置值,设置值可以通过「点」语法来获取,其中包含了文件与选项的名称。你也可以指定一个默认值,当该设置选项不存在时就会返回默认值:

$value = config('app.timezone');

若要在运行期间修改设置值,请传递一个数组至 config 辅助函数:

config(['app.timezone' => 'America/Chicago']);

环境配置

应用程序常常需要根据不同的运行环境设置不同的值。例如,你会希望在本机开发环境上有与正式环境不同的缓存驱动。只需通过配置文件就可轻松完成。

Lumen 使用 Vance Lucas 的 DotEnv PHP 函数库来实现项目内环境变量的控制,在安装好的全新 Lumen 应用程序里,在根目录下会包含一个 .env.example 文件。如果你通过 Composer 安装 Lumen,这个文件将自动被更名为 .env,否则你只能手动更改文件名。

当你的应用程序收到请求时,这个文件所有的变量都会被加载到 PHP 超级全局变量 $_ENV 里。你可以使用辅助函数 env 来获取这些变量的值:

$debug = env('APP_DEBUG', true);

env 的第二个参数是备用数据,如果 APP_DEBUG 未设置的话,true 就会被当做备用数据返回。

根据本机服务器或者正式环境的需求的不同,可自由修改环境变量。但是,.env 文件不应该被提交到应用程序的版本控制系统,因为每个开发人员或服务器在使用应用程序时,可能需要不同的环境配置。

如果你是某个团队的开发者,建议将 .env.example 文件放进你的应用程序。通过样本配置文件里的预设值,你团队中的其他开发人员就可以清楚地知道,在运行你的应用程序时有哪些环境变量是必须有的。

获取目前应用程序的环境

应用程序的当前环境是由 .env 文件中的 APP_ENV 变量所决定的。你可以通过应用程序实例的 environment 方法来获取该值:

$environment = app()->environment();

你也可以传递参数至 environment 方法来确认当前环境是否与参数相符合:

if (app()->environment('local')) {
    // 环境是 local
}

if (app()->environment('local', 'staging')) {
    // 环境是 local 或 staging...
}