配置介绍
在学习配置信息之前,建议需要对Laravel的目录结构有一定了解。如果你还不熟悉Laravel的目录结构,不妨回到上一章进行了解。
简单理解,配置就是Laravel及用Laravel开发的项目在运行过程中需要读取的基本信息,这些信息用于支撑项目的基本运行。
如,Laravel需要配置项目名,URL,数据库连接信息等,这些常态化的参数便可以写在配置里。
Laravel的所有配置信息,都存放在config文件夹下,只要在这个文件夹下,你就可以自由的增加以.php结尾的配置文件。
配置分类
Laravel的配置大致分为以下四种:
- 环境配置
- 测试环境配置
- 静态配置
- 动态配置
环境配置
环境配置,保存在项目根目录下的.env文件,默认情况下,它不会自动生成,而是通过以“.env.example”为模板复制生成的。环境配置能为开发者解决在不同环境下,需要不同配置的问题。
如,我在部署环境和开发环境下,连接的数据库是不同的,这时候,我不能每一次用git同步时,都修改一遍数据库连接的配置信息,而环境配置.env文件再git下,默认是被隐藏的,它便不会在代码同步时产生合并,这样一来,我在部署环境和开发环境都只需要配置一次数据库连接信息,之后便不需要再更改了。
但是有一点需要记住,写在.env文件中的配置,不会自动加载到框架中的,如果你读过config/app.php的话,你会发现许多配置,框架本身都使用了env方法进行赋值,原因在于,Laravel运行时,默认读取的还是config下的配置信息,之所以能够在.env文件下控制配置的值,是在config的一些配置信息中,框架作者使用env方法来动态读取.env下的值。
Laravel提供了env函数,用于读取环境配置
测试环境配置
Laravel还集成了PHPUint单元测试,当测试的时候,或许使用的环境配置又不一样,但测试通常会在开发环境下进行,这时候为了避免测试的时候改配置,测试完又改回开发配置,Laravel又提供了测试环境配置的功能。
设置测试环境配置很简单,只需要拷贝.env文件为.env.testing,在其中配置特定的参数即可。
配置完成之后,运行PHPUint测试,或在使用php artisan时带上--env=testing,Laravel就会读取.env.testing文件来替换.env的配置
静态配置
静态配置便是config目录下的配置文件,这些配置都是php文件,以数组的形式返回。
动态配置
动态配置便是在Laravel运行过程中设置的配置值,但它不是永久性的设置,而是仅在这一次脚本运行生命周期以内有效。
理解上面静态配置之后,大家或许就能想到,静态配置只能够写死在配置文件中,但如果当代码运行到某个if语句时,我们希望符合条件和不符合条件能对同一个配置得到两种不同的值,这时候,写死在配置文件中的配置信息恐怕是无能为力的。
这时候,便需要动态配置来解决这个问题。
Laravel提供了config函数来获取配置值和设置动态配置。
缓存配置
Laravel有这么多的配置文件,PHP又是解释型语言,可以想象,当每一次请求发生,程序都将读取config下的文件来生成配置,这对于开发模式下固然是个好事,因为每次设置完配置就能立即在下一次请求中生效,但对于部署模式,却是一种无用的消耗,当配置值稳定之后,基本不会出现什么变更,这时候就可以使用缓存配置来减少无用开销。
缓存配置的命令:php artisan config:cache
该命令将会在根目录的bootstrap/cache中生成config.php缓存文件,当不想用配置缓存时,可以将该文件删除
维护模式
简单理解,维护模式就是一种能够彻底关闭Laravel所有功能服务的模式,它能让整个Laravel项目停止工作。
当维护模式下的Laravel接收到请求,它会抛出MaintenanceModeException异常,并为http请求返回503错误码。
php artisan down开启维护模式(关闭Laravel项目)
php artisan up关闭维护模式(开启Laravel项目)
维护模式的响应模板在resources/views/errors/503.blade.php下
网友评论