ThinkPHP--调试模式

调试模式

//入口文件处,开启调试模式。
define('APP_DEBUG',true);

调试模式在开发中开启的优势有:
1、开启日志记录,任何错误和调试信息都会详细记录;
2、关闭模板缓存,模板修改可以及时生效;
3、记录SQL日志,方便分析SQL;
4、关闭字段缓存,数据表字段修改受缓存影响;
5、严格检查文件大小写,帮助提前发现Linux部署问题;
6、通过页面Trace公共更好的调试和发现问题。

异常处理

TP的异常抛出相对来说比较人性化,当然我们也可以自行调用这种错误信息。

//手动抛出异常
E('失败!');

模型调试

在模型调试中,为了更好查明错误,经常需要查看最近使用SQL语句。

//获取最近的SQL语句
echo $user->getLastSql();
//查看SQL的错误信息
$list = $user->query('SELECT * FROM aaa');
echo $user->getDbError();

性能调试

我们可以使用大G()方法,来测试某段代码的内存开销和运行时间。

//包裹要测试的代码
G('begin');  //包裹开始
$user = D('User');
$list = $usser->select();
$this->assign('list',$list);
$this->display();
G('end');   //包裹结束
//计算运行时间,单位秒
echo G('begin','end','s');
echo '<br/>';
//计算消耗内存,单位kb
echo G('begin','end','m').'kb';

PS:如果你的环境不支持内存消耗测试,它会自动按时间运算。

变量调试

在开发中,我们经常需要对变量进行调试,一般会采用PHP自带的var_dump()print_r方法,TP内置了一个对浏览器友好的dump()方法,用于输出变量信息。

//参数1必选,其他可选
dump($list, true, null, false);

PS:参数1 为变量,参数2 为是否打印,参数3 标识,参数4 是否采用print_r

日志记录

日志处理是系统自动进行的,在开启日志记录的情况下,会记录下运行的日志级别
的所有日志信息。
一般情况下,SQL 日志级别必须在调试模式下开启有效,否则不会记录。默认情况下,一般在调试模式下记录日志,如果要在部署模式下开启日志记录,则需要进行配
置。

//部署模式下开启日志记录
'LOG_RECORD' =>true,
//运行的日志记录级别
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR',

ThinkPHP 对系统的日志按照级别来分类,包括:
1.EMERG 严重错误,导致系统崩溃无法使用
2.ALERT 警戒性错误, 必须被立即修改的错误
3.CRIT 临界值错误, 超过临界值的错误
4.ERR 一般性错误
5.WARN 警告性错误, 需要发出警告的错误
6.NOTICE 通知,程序可以运行但是还不够完美的错误
7.INFO 信息,程序输出信息
8.DEBUG 调试,用于调试信息
9.SQL SQL 语句,该级别只在调试模式开启时有效

//手动写入,第二参数为级别,第三为强制
Log::record('日志','WARN',true);
//不受配置文件影响
Log::write('日志','WARN');

Trace

ThinkPHP 提供了一个非常方便的调试工具:页面Trace。这个工具必须在调试模式下有
效。

//页面Trace
'SHOW_PAGE_TRACE' =>true,
//设置要显示的调试模块
'TRACE_PAGE_TABS'=>array(
'base'=>'基本',
'file'=>'文件',
'think'=>'流程',
'error'=>'错误',
'sql'=>'SQL',
'debug'=>'调试'
),
//调试方法
trace('调试方法', '提示', 'user');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用ThinkPHP-5.0做小程序后端的步骤: 1.安装ThinkPHP-5.0框架 2.创建一个新的应用程序 3.配置数据库连接信息 4.创建一个控制器来处理小程序的请求 5.在控制器中编写处理逻辑 6.将数据返回给小程序 7.在小程序中调用后端接口 8.测试接口是否正常工作 9.部署应用程序 具体步骤如下: 1.安装ThinkPHP-5.0框架 可以通过Composer安装ThinkPHP-5.0框架,也可以从官方网站下载框架源代码并手动安装。 2.创建一个新的应用程序 使用命令行工具创建一个新的应用程序,例如: ```php php think build myapp ``` 这将在当前目录下创建一个名为myapp的新应用程序。 3.配置数据库连接信息 在应用程序的config目录下创建一个database.php文件,并在其中配置数据库连接信息,例如: ```php <?php return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => 'localhost', // 数据库名 'database' => 'test', // 用户名 'username' => 'root', // 密码 'password' => '', // 端口 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, ]; ``` 4.创建一个控制器来处理小程序的请求 在应用程序的controller目录下创建一个名为Api.php的控制器,例如: ```php <?php namespace app\controller; use think\Controller; class Api extends Controller { public function index() { // 处理逻辑 } } ``` 5.在控制器中编写处理逻辑 在控制器的index方法中编写处理逻辑,例如: ```php public function index() { // 获取小程序传递的参数 $param = $this->request->param(); // 处理逻辑 // ... // 返回数据给小程序 return json([ 'code' => 0, 'msg' => 'success', 'data' => $result, ]); } ``` 6.将数据返回给小程序 使用json函数将处理结果返回给小程序,例如: ```php return json([ 'code' => 0, 'msg' => 'success', 'data' => $result, ]); ``` 7.在小程序中调用后端接口 使用小程序的wx.request函数调用后端接口,例如: ```javascript wx.request({ url: 'https://example.com/api', data: { param1: 'value1', param2: 'value2', }, success(res) { console.log(res.data) } }) ``` 8.测试接口是否正常工作 使用Postman等工具测试接口是否正常工作。 9.部署应用程序 将应用程序部署到服务器上,并配置Nginx或Apache等Web服务器来处理请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值