简介
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 中的所有变量在收到请求时会被加载到 PHP 超全局变量 $_ENV 中。在配置文件中可以通过 env() 函数获取。
判断当前环境
当前环境由.env 中的 APP_ENV 变量决定,可以通过 App 门面的 environment 方法获取。
加密环境文件
未加密的环境文件不应保存到版本控制中,但 Laravel 提供了加密环境文件的功能。加密
要加密环境文件,请使用env:encrypt 命令。
.env 会被加密,密文保存到 .env.encrypted 中。解密密钥会在命令输出中展示,请存放到安全的密码管理器中。
若想指定自定义的加密密钥,可使用 --key 选项。
所提供的密钥长度必须与所用加密算法要求的密钥长度一致。默认情况下 Laravel 使用需要 32 位字符密钥的
AES-256-CBC 算法。通过 --cipher 选项可以使用 Laravel 加密 支持的任何加密算法。.env 与 .env.staging),可以通过 --env 选项指定要加密的环境。
可读变量名
在加密环境文件时,使用--readable 选项可以只加密变量的值,同时保留变量名可读。
env:decrypt 命令无需额外的选项。
使用
--readable 选项时,原始环境文件中的注释与空行不会保留到加密后的输出中。更新可读的加密文件
在更新可读格式的加密环境文件时,Laravel 会保留未变化的值,并移除已从原始环境文件中删除的变量。--force 选项。可用于更换加密密钥或替换已失效的加密文件。
解密
要解密环境文件,请使用env:decrypt 命令。该命令需要解密密钥,Laravel 会从 LARAVEL_ENV_ENCRYPTION_KEY 环境变量中读取。
--key 选项直接传入密钥。
env:decrypt 命令后,Laravel 会解密 .env.encrypted 的内容并写入 .env 文件。
若使用自定义加密算法,请指定 --cipher 选项。
.env 与 .env.staging),可以通过 --env 选项指定要解密的环境。
--force 选项。
访问配置值
可以通过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 与控制器绑定的路由基础。