1.API调试工具PostMan
不依赖前端已经写好的代码来测试接口数据。
单元测试(条件允许下):在代码比较长的情况下,学会单元测试,测试bug时候很实用
2.tp5
2.1 层次结构
入口->应用(多个模块)
应用下MVC
业务层 M
客户端->C C调M M返C C返V V->客户端
2.2 URL
POTH_INFO
不区分大小写
http://serverName/index.php/module/controller/action/[param/value...]
http://localhost/public/index.php/index/index/index
缺点
太长
暴露了服务器文件结构
不够灵活
不能很好的支持URL语义化(最大缺陷,尤其是API)
兼容模式
http://serverName/index.php?=module/controller/action/param/value…
2.3 路由的两种展现方式
官方最初的方式
‘pattern’ => [
‘name’ => ‘\w+’,
],
‘[hello]’ => [
‘:id’ => [‘index/hello’, [‘method’ => ‘get’], [‘id’ => ‘\d+’]],
‘:name’ => [‘index/hello’, [‘method’ => ‘post’]],
],
动态注册
use think\Route;
Route::rule(‘login’,‘admins/Account/login’);
路由三种模式
混合模式(官网默认开启)
POTH_INFO(关闭混合路由后)
强制路由(API使用比较规范)
2.4 定义路由
Route::rule(‘路由表达式’,‘路由地址’,‘请求类型’,‘路由参数(数组)’,‘变量规则(数组)’);(后面3个可缺省)
类型:GET,POST,DELETE,PUT,*(默认)【Postman测试】
Route::rule(‘login’,‘admins/Account/login’,‘GET’,[‘https’=>false]);
//Route::rule(‘login’,‘admins/Account/login’,‘GET|POST’,[‘https’=>false]);
Route::get(‘login/:id’,‘admins/Account/login’);
Route::rule(‘hello’,‘admins/Test/hello’);
Route::post();
Route::any();
test
Route::get(‘hello’,‘admins/Test/hello’);
Route::post(‘hello’,‘admins/Test/hello’);
Route::get(‘hello/:id’,‘admins/Test/hello’);
public function hello(
i
d
,
id,
id,name)
{
echo
i
d
;
e
c
h
o
′
<
b
r
>
′
;
e
c
h
o
′
n
a
m
e
=
′
.
id; echo '<br>'; echo 'name='.
id;echo′<br>′;echo′name=′.name;
// return ‘hello,hui’;
}
方法中做变量自动对应(第一种)
public function hello($id,$name,$sex)
{
echo $id;
echo '<br>';
echo 'name='.$name;
echo '<br>';
echo 'sex='.$sex;
// return 'hello,hui';
}
借助Request对象(第2种)
//获取指定参数变量
$id = Request::instance()->param(‘id’);
//获取所有参数变量
$all = Request::instance()->param();
获取URL?后面的参数变量
$all = Request::instance()->get();
获取URL里面的参数变量
$all = Request::instance()->route();
public function hello()
{
$all = Request::instance()->param();
var_dump($all);
// $id = Request::instance()->param('id');
// $name = Request::instance()->param('name');
// $sex = Request::instance()->param('sex');
// echo $id;
// echo '<br>';
// echo 'name='.$name;
// echo '<br>';
// echo 'sex='.$sex;
}
//还有input助手函数(第3种)
$all = input('param.');(数组)
$all = input('param.name');
$all = input('post.');
$all = input('get.name');
//依赖注入(强语言中使用的比较多)
public function hello(Request $request)
{
// $all = Request::instance()->param();
$all = $request->param();
var_dump($all);
}