Laravel 的配置信息
介绍
Laravel 框架的所有配置文件都保存在 config
目录中。 每个选项都有说明,你可随时查看这些文件并熟悉都有哪些配置选项可供你使用。
环境配置
对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。 例如,你可能希望在本地使用的缓存驱动不同于生产服务器所使用的缓存驱动。
Laravel 利用 Vance Lucas 的 PHP 库 DotEnv 使得此项功能的实现变得非常简单。在新安装好的 Laravel 应用程序中,其根目录会包含一个 .env.example
文件。如果是通过 Composer 安装的 Laravel,该文件会自动更名为 .env
。否则,需要你手动更改一下文件名。
你的 .env
文件不应该提交到应用程序的源代码控制系统中,因为每个使用你的应用程序的开发人员 / 服务器可能需要有一个不同的环境配置。此外,在入侵者获得你的源代码控制仓库的访问权的情况下,这会成为一个安全隐患,因为任何敏感的凭据都被暴露了。
如果是团队开发,则可能希望应用程序中仍包含 .env.example
文件。因为通过在示例配置文件中放置占位值,团队中的其他开发人员可以清楚地看到哪些环境变量是运行应用程序所必需的。你也可以创建一个 .env.testing
文件,当运行 PHPUnit 测试或以 --env=testing
为选项执行 Artisan 命令时,该文件将覆盖 .env
文件中的值。
.env
文件中的所有变量都可被外部环境变量(比如服务器级或系统级环境变量)所覆盖。
检索环境配置
当应用程序收到请求时,.env
文件中列出的所有变量将被加载到 PHP 的超级全局变量 $ _ENV
中。你可以使用 env
函数检索这些变量的值。事实上,如果你查看 Laravel 的配置文件,你就能注意到有数个选项已经使用了这个函数:
'debug' => env('APP_DEBUG', false),
传递给 env
函数的第二个值是「默认值」。如果给定的键不存在环境变量,则会使用该值。
确定当前环境
应用程序当前所处环境是通过 .env
文件中的 APP_ENV
变量确定的。你可以通过 App
facade 中的 environment
方法来访问此值:
$environment = App::environment();
你还可以传递参数给 environment
方法,以检查当前的环境配置是否与给定值匹配。 如果与给定值匹配,该方法将返回 true
:
if (App::environment('local')) {
// 环境为 local
}
if (App::environment(['local', 'staging'])) {
// 环境为 local 或 staging
}
应用程序当前所处环境检测可以被服务器级的 APP_ENV
环境变量覆盖。这为相同的应用程序配置不同的环境时是非常有用的,这样你可以在你的服务器配置中为给定的主机设置与其匹配的给定的环境。
访问配置值
你可以轻松地在应用程序的任何位置使用全局 config
函数来访问配置值。配置值的访问可以使用「点」语法,这其中包含了要访问的文件和选项的名称。还可以指定默认值,如果配置选项不存在,则返回默认值:
$value = config('app.timezone');