介绍
Laravel 框架所有的配置文件都存放在 config
目录下。每一个配置项都有完整的注释,所以你可以浏览这些文件去熟悉你可能用到的配置项。
获取配置值
你可以通过全局辅助函数 config
在应用的任意位置访问这些配置值。这些配置值通过使用“点”语法来获取,其中包含了文件以及你需要获取的选项的名称。当配置项不存在的话,你还可以指定默认值:
$value = config('app.timezone');
想要在运行时设置配置值,可以给 config
辅助函数传递一个数组:
config(['app.timezone' => 'America/Chicago']);
环境变量配置
根据程序运行时的环境来提供不同的配置值是非常有用的。例如,你想在开发环境和生产环境使用不同的缓存驱动。
Laravel 使用 Vance Lucas 开发的 DotEnv PHP 库来实现这一机制。在全新安装的 Laravel 应用中,根目录下会有一个 .env.example
文件。如果你是通过 Composer 安装的 Laravel ,这个文件会被自动重命名为 .env
,否则,你需要手动重命名这个文件。
获取环境变量配置
当你的应用接受的请求时,所有列在这个文件中的变量都会被加载到 $_ENV
超级全局变量中。然而,你还可以通过 env
辅助函数来获取你配置文件中的这些值。事实上,你查看 Laravel 配置文件的时候,你可能注意到了有些配置项已经使用了这个辅助函数:
'debug' => env('APP_DEBUG', false),
传递给 env
函数的第二个参数为默认值,如果给定 key 的环境变量不存在,将会返回该默认值。
你的 .env
文件不应提交到版本控制系统,因为你应用的每一个开发者 / 运行环境可能需要不同的环境配置。
如果你在团队中开发的话,你可能希望应用中包含 .env.example
文件。通过在 example 文件中给定预设的环境配置,团队中的其他开发者可以清晰地看到应用程序运行需要的全部环境变量。
查看当前的环境
当前应用的环境是通过 .env
文件中的 APP_ENV
来确定的。你可以通过 App
Facade 的 environment
方法来获取该值:
$environment = App::environment();
你也可以给 environment
传递参数来检查当前环境是否与给定的相同。如果当前环境与给定的其中任何一个相符的话,将会返回 true。
if (App::environment('local')) { // 当前环境为 local } if (App::environment('local', 'staging')) { // 当前环境为 local 或 staging... }
通过 app
辅助方法也可以获取当前应用的实例。
配置缓存
如果要提升你应用的速度,可以通过 config:cache
Artisan 命令把配置缓存到一个文件中。这会把应用中所有的配置项结合到一个单独的文件中,以使框架可以更快的加载它。
作为你生产环境部署的一部分,你通常也需要运行 php artisan config:cache
命令。但是在本地开发环境中,请不要运行该命令,因为在你应用开发的过程中,配置项可能会经常的变动。
维护模式
当你的应用处于维护模式时,所有的请求都会返回一个通用的视图。在你更新应用或进行性能维护时,这么做可以很轻松的「关闭」整个应用程序。维护模式的检查会包含在应用程序默认的中间件栈中。当你的应用处于维护模式时,会抛出一个 503 状态码的 MaintenanceModeException
异常。
要启用维护模式,只需运行 down
Artisan 命令:
php artisan down
你也可以为 down
命令提供 message
和 retry
选项。message
的值会作为展示或记录的信息,而 retry
的值将会作为 Retry-After
HTTP 头的值。
php artisan down --message='Upgrading Database' --retry=60
要禁用维护模式,使用 up
命令:
php artisan up
维护模式响应模板
默认的维护模式模板位于 resources/views/errors/503.blade.php
。你可以根据应用的需要自由的更改该模板。
维护模式 & 队列
当你的应用处于维护模式时,所有的队列任务都不会被执行。当退出维护模式后,这些任务则会继续正常执行。
维护模式的替代方案
由于维护模式需要执行几秒钟的时间,所以你可以使用 Envoyer 作为替代方案,实现 0 秒下线 Laravel 应用。
该篇属于专题:《Laravel 5.3 中文文档》