本章节我们来开启一下系统的调试功能,以及简单理解下框架配置信息。
一、开启调试
在开发阶段,我们建议开启框架的调试模式。调试模式开启后,会牺牲一些执行效率,但大大提高了开发排错的能力。当项目部署到生产环境时,再关闭调试模式即可。
安装好的 TP6.0 默认并没有开启调试,可以在域名后面胡乱输入字符回车;
此时,页面只会提示:“页面错误,请稍后再试~”,表示调试未开启;
1、开启详细调试信息
通过命令行安装的 TP6.0,会自动在根目录生成一个.example.env 文件;
这个.env 文件是环境配置文件,我们只要删除前面的.example即可生效;
此时,刷新页面,右下角会出现Trace调试小图标,说明调试开启了;
查看.env 文件,打开调试的环境变量为APP_DEBUG = true,false 关闭;
2、仅开启简要调式信息
还有一种模式,就是关闭调试的时候,也可以显示简要的错误信息;
首先,关闭调试模式:APP_DEBUG = false;
然后,根目录下 config 的 app.php 最后一样设置为: 'show_error_msg' => true,
3、开启调式模式的优势
- 记录系统运行流程的执行过程;
- 展示错误和调试信息,并开启日志记录;
- 模版修改可以及时生效(不会被缓存干扰);
- 启动右下角的 Trace 调试功能,更加强大;
- 发生异常时,也会显示异常信息;
二、配置信息
1、配置文件的两种形式
配置文件有两种形式,开启调试我们采用的.env 文件这是一种,适合本地;
另一种配置文件,在根目录下的 config 里,有很多类型的配置,适合部署;
官方手册明确表示:.env 环境变量用于本地开发测试,部署后会被忽略;
2、配置文件中值的获取
那么,我们怎么去获取这些配置文件的值呢?
- 对于.env 文件,比如[DATABASE]下的 HOSTNAME = 127.0.0.1 获取方式如下
use think\facade\Env; return Env::get('database.hostname');
- 对于 config 文件,比如 database.php 下的 hostname,获取方式如下:
use think\facade\Config; return Config::get('database.connections.mysql.hostname');
也可以判断这两种文件的配置是否存在,使用has方法判断:
echo Env::has('database.hostname'); echo Config::has('database.connections.mysql.hostname');
3、两种配置文件的优先级
关于这两种配置文件的优先级,在本地测试时.env优先于config。
从config配置中可以看出,它是先读取.env的,然后再默认配置一个自己的:
而到了部署环境,.env 会被忽略,则自动切换到 config 配置。