ThinkPHP5
- Web框架三大核心知识(路由、控制器与模型)TP5最灵活、最复杂的三大块:路由、获取参数值、数据库操作
URL路由配置文件修改路由模式
PATH_INFO
// 是否开启路由
'url_route_on' => false,
混合模式:PATH_INFO和路由模式都可以使用
// 是否开启路由
'url_route_on' => true,
强制使用路由模式:application目录下route.php文件配置路由,地址栏直接访问hello,与laravel框架路由类似;
// 是否强制使用路由
'url_route_must' => true,
use think\Route;
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
Route::rule('hello','sample/test/hello','get|post',['https' => false]);
Route::get();
Route::post();
Route::any();
Route::get('hello/:id','sample/test/hello');地址栏:域名/hello/4564?name=gsy
Route::post('hello/:id','sample/test/hello');获取所有输入参数:input('param.');
- 验证器、读取器、缓存与全局异常处理
- ORM:模型与关联模型
微信
- 微信小程序
- 微信登录
- 微信支付(预订单、库存量检测与回调通知处理)
- 微信模板消息
MySQL
- 数据库表设计
- 数据冗余的合理利用
- 事务与锁在订单(库存量)检测中的应用
TP5安装断点调试
[Xdebug]下载地址(https://xdebug.org/)或直接开启xdebug扩展,在php.ini文本末尾将php_xdebug注释符去掉,重启服务,打印phpinfo()查看xdebug详细信息;
PHPstorm小技巧
添加项目命名空间:设置-Directories-找到相应的项目应用目录(将目录标记为Sources)-右边点击P更改命名空间名称;保存设置,那么在框架中新建类文件时将会自动生成命名空间;
接口测试工具
Postman,可以在Chrome浏览器扩展程序里下载,非常好用的一款测试工具多种路由请求类型;
TP5_Validate
独立验证(作为了解)
$data = [
'name' => 'gsy',
'email' => 'wejfl@qqcom'
];
$validate = new Validate([
'name' => 'require|max:10',
'email' => 'email'
]);
$result = $validate->batch()->check($data);//循环比对数据验证
var_dump($validate->getError());//打印错误信息
var_dump($result);
验证器(主要使用),二者区别:验证器对于validte的规则做了更好的封装;
$data = [
'name' => 'gsy',
'email' => 'wejfl@qqcom'
];
//验证器
$validate = new TestValidate();
$result = $validate->batch()->check($data);//循环比对数据验证
var_dump($validate->getError());//打印错误信息
什么是REST?什么是SOAP?
SOAP(Simple Object Access Protocol):使用XML描述数据,重;
REST(Representational State Transfer):使用JSON描述数据表述性状态转移,轻,它是一种风格、约束、设计理念;
RESTFul API:基于REST的API设计理论,轻,使用JSON描述数据,无状态;
RESTFul API豆瓣API文档最佳实践,HTTP动词(幂等性、资源安全性,类似于CURD)
POST:创建
PUT:更新
GET:查询
DELETE:删除
异常分类
由于用户行为导致的异常:
1、用户输入的参数没有通过验证器的校验;
2、用户输入的信息没有查询到结果;
通常不需要记录日志,需要向用户返回具体信息
服务器自身的异常:
1、代码错误;
2、调用外部接口的错误;
记录日志,不需要想用户返回具体原因;
ThinkPHP5中的日志系统
由于用户操作不当而导致的错误信息不需要也不应该记录下来的,否则导致系统日志的信息很多都是无用的,因为不是自己代码的错误造成的而是用户造成的,所以无需存些与程序本身无关的错误信息。TP5默认会把所有的异常都给写进日志里,我们需要把TP5的自动记录给关闭掉,然后手动的有选择的来记录日志。
1、关闭TP5自动记录日志,配置文件
// +----------------------------------------------------------------------
// | 日志设置
// +----------------------------------------------------------------------
'log' => [
// 日志记录方式,内置 file socket 支持扩展
'type' => 'test',
// 日志保存目录
'path' => LOG_PATH,
// 日志记录级别
'level' => [],
]
2、手动有选择的记录日志
AOP面向切面编程
exception目录,全局异常处理就是一个典型的AOP思想;