简介
Laravel 框架的所有配置文件都存放在config/ 目录下。每个选项都带有注释,可以打开文件查看可用的选项。
配置文件用来管理数据库连接信息、邮件服务器信息、应用 URL 与加密密钥等各种核心设置。
about 命令
使用 about Artisan 命令可以查看应用的配置、驱动与环境的概要。
--only 选项。
config:show 命令。
环境配置(.env)
在实际开发中,我们经常希望根据运行环境切换配置值。比如本地和生产环境使用不同的缓存驱动。 Laravel 借助 DotEnv PHP 库来简化这件事。全新安装时,应用根目录会包含一个.env.example 文件(其中定义了常见的环境变量),安装过程会自动将其复制为 .env。
团队协作时,建议随代码维护
.env.example 并放在仓库中。写好占位值,可以让团队其他成员清楚地知道需要哪些环境变量。环境文件的安全性
不过,Laravel 内置了加密环境文件的功能,加密后就可以安全地保存到版本控制中。额外的环境文件
在应用启动时,Laravel 会检查是否指定了APP_ENV 环境变量或 CLI 的 --env 参数。若已指定且存在 .env.[APP_ENV] 文件,则会加载该文件;否则使用默认的 .env。
环境变量的类型
.env 文件中的变量都会被解析为字符串,但为了让 env() 函数能够返回更丰富的类型,有以下特殊值:
.env 中的值 | env() 返回值 |
|---|---|
true | (bool) true |
(true) | (bool) true |
false | (bool) false |
(false) | (bool) false |
empty | (string) '' |
(empty) | (string) '' |
null | (null) null |
(null) | (null) null |
读取环境变量
.env 中的所有变量在收到请求时会被加载到 PHP 超全局变量 $_ENV 中。在配置文件中可以通过 env() 函数获取。
判断当前环境
当前环境由.env 中的 APP_ENV 变量决定,可以通过 App 门面的 environment 方法获取。
加密环境文件
未加密的环境文件不应保存到版本控制中,但 Laravel 提供了加密环境文件的功能。.env 会被加密,密文保存到 .env.encrypted 中。解密密钥会在命令输出中展示,请存放到安全的密码管理器中。
解密使用 env:decrypt 命令。
访问配置值
可以通过Config 门面或全局的 config() 函数在应用的任意位置访问配置值。使用「点号记法」,将文件名与选项名组合起来。
Config::set(),或者向 config() 传入数组。
缓存配置
要提升应用性能,可以将所有配置文件缓存到单个文件中。.env 文件在框架请求或运行 Artisan 命令时就不会再被加载。因此 env() 只会返回系统级环境变量。
要清除缓存,请使用 config:clear。
发布配置文件
Laravel 大多数配置文件都已经放在config/ 目录中,但 cors.php、view.php 等文件默认并未发布。
要发布尚未发布的配置文件,使用 config:publish 命令。
调试模式
config/app.php 中的 debug 选项决定错误信息要展示给用户多少。该选项默认跟随 .env 中的 APP_DEBUG 环境变量。
维护模式
当应用处于维护模式时,所有请求都会显示自定义视图。这样在升级或维护期间可以临时「关闭」应用。启用维护模式
--refresh 选项可以让浏览器在指定秒数后自动刷新。
--retry 选项会设置为 Retry-After HTTP 头的值。
绕过维护模式
若希望通过秘密令牌允许特定用户访问,使用--secret 选项。
--with-secret 选项则由 Laravel 自动生成令牌。
多服务器下的维护模式
默认情况下 Laravel 以文件方式管理维护模式。多服务器场景下,建议改用基于缓存的方式。预渲染维护视图
若在部署过程中执行php artisan down,可能会有用户在依赖更新过程中看到错误。可以使用 --render 选项预先渲染视图,避免这种情况。
关闭维护模式
可通过创建
resources/views/errors/503.blade.php 来自定义维护模式的默认模板。下一步
路由
学习将 URL 与控制器绑定的路由基础。