- 根据文件注释自动生成接口文档,方便书写和维护
- 可在线测试
- 支持多项目接口配置(只需配置类文件的绝对路径和完整类名即可)
- 程序读取待解析的类文件代码,处理成可直接包含的类代码,载入,并存储在本地
- 需解析的注释格式写法同php数组
- 测试请求使用了Guzzle库
设置对应的项目路径
$demo = require ROOT_DIR . 'config/demo.php';
$demo2 = require ROOT_DIR . 'config/demo2.php';
return [
// 接口项目
'projects' =>
[
// 项目一
'demo' => $demo,
// 项目二
'demo2' => $demo2,
],
// 接口被处理后的存放目录(一般不用改)
'processed_class' => $_SERVER['DOCUMENT_ROOT'] . '/processed_class/',
// 访问guzzle.php文件的url(一般不用改)
'ajax_url' => 'http://' . $_SERVER['HTTP_HOST'] . '/core/guzzle.php',
// 是否简化类(简化后保存的类代码只包含类和方法的基本结构以及注释,没有任何业务代码,主要为了方便查看)
'isSimplifyClassContent' => true,
// 是否读取本地保存的类
'isReadLocalClass' => false,
];
项目具体配置
// un_processed_class 和 controllers 下的 file_path 组成类的绝对路径
return [
'name' => '案例', // 项目名称
'un_processed_class' => $_SERVER['DOCUMENT_ROOT'] . '/processed_class/class/demo/', // 需要被解析的类文件目录
'host' => 'http://www.test_api.cn/', // 请求地址
'controllers' =>
[
['file_path' => 'a/Demo.php', 'class_name' => 'project\\Demo'], // 控制器
],
];
类注释中添加@needParse,表示需要解析该注释,必须放在类定义上面,否则PHP反射机制无法获取到该注释
如在类代码和注释外有其余代码,则需用class_start 和 class_end 包含之,用于过滤掉其余代码;否则,这两个标签可省略。
// class_start
/**
*
* @needParse
* [
* 'title' => 'demo控制器',
* 'description' => 'demo接口描述'
* ]
*/
class test{}
// class_end
对应配置文件下的 host 和 request_uri 组成完整的接口访问url 除了params外,其他都是一目了然,不再说明
/**
* @needParse
* [
* 'title' => '获取姓名get',
* 'description' => '获取一个用户姓名',
* 'request_uri => 'test_request/get_name.php',
* 'method_type' => 'POST',
* 'params' =>
* [
* ['name' => 'user_id','type' => '整型','require' => '是' , 'default' => '' , 'description' => '用户ID'],
* ],
* 'remark' => 'demo备注说明',
* 'return' =>
* [
* 'code' => '状态码',
* 'message' => '返回信息',
* 'data' => [
* ['user_id' => '用户ID'],
* ['name' => '用户名称'],
* ],
* ]
* ]
*/
参数类型:数组,文件,其他(都相当于字符串,包括乱写的type)
数组类型:['name' => 'user_id','type' => '数组','require' => '是' , 'default' => '' , 'description' => '用户ID'],其中type的值为[数组]或[array]均可,传值方式为需传数组的json字符串
文件类型:['name' => 'upload_file','type' => '文件','require' => '是' , 'default' => '' , 'description' => ''],其中type的值为[文件]或[file]均可,传值方式为将包含一个或多个文件绝对路径的数组转为json字符串