前言
我们可以通过 yii-apidoc 来通过反射拿取备注的方式生成类的说明文档,也可以根据md文件转换成说明文档,这里主要运用的是md来转换成使用文档,和 hexo 的原理一样
安装apidoc
|
|
安装的时候可能会进行报错
我们可以通过 yii-apidoc 来通过反射拿取备注的方式生成类的说明文档,也可以根据md文件转换成说明文档,这里主要运用的是md来转换成使用文档,和 hexo 的原理一样
|
|
安装的时候可能会进行报错
上次已经介绍过了 yii-apidoc 扩展,但是根据备注生成接口文档感觉还不是我们真正需要的。也稍微查了一下 apidoc 是可以生成接口文档的,但是看到要装这装那也就没倒腾。之前看到过一个及其好用的生成接口文档并提供接口测试的项目,做成一个包供大家使用。
这个因为用到Yii框架,所以依赖于Yii,你也可以根据自己的框架改动部分代码
|
|
假设我们要放到 backend 项目下
注意:如果访问的是其他域名,会存在跨域问题,需要在指向项目中添加header头,如
header("Access-Control-Allow-Origin: *");允许所有
Yii 的 restful 实现了用户访问速率的控制(RateLimiter),但是是基于 user 组件的,也就是说用户需要先登录。这里仿照 RateLimiter 写了一个基于 Ip 的控制访问速率的,需要用到 cache 组件用来进行存储每个ip访问的次数和时间。
把过滤器注册进控制器中
扩展的话需要先看一下下面给出的代码。需要更改的有三个方法
这三个方法的作用下面代码中的备注已经很清楚了,也给了一个简单的 dome。
三个方法都包含了 $request, $action 两个参数,可以通过这两个对每个 action 的访问进行更精细的控制
Yii 包含了一个建立在 PHP PDO 之上的数据访问层 (DAO)。DAO为不同的数据库提供了一套统一的API。通过配置可以分析出用的是哪种数据库,然后使用对应的 Schema 来处理sql。各类之间的分工也比较明确 yii\db\Connection 用来连接数据库、创建事务, yii\db\Command 用来执行sql, yii\db\QueryBuilder 用来创建sql。
安全性也比较高,通过pdo预处理sql然后绑定参数,这就防止了sql注入的问题。
顺便说一下 AR 模式,因为继承 Model 所以同样拥有好用的字段验证,这在更新或者写入的时候非常好用,但是不好的地方是 AR 模型通过属性联表的操作,让操作变得不那么清晰。所以查询一般也就不推荐了。
db->createCommand() 执行sql时放注入写法[[field]] 将会被处理成 field; 将会处理成 配置的表前缀+tablename 注意:这里省略了%,因为hexo的原因,不然会报错:name 将会被替换成传递的对应的参数,仅供参考,因为是通过pdo预处理执行的(这也是为什么会有防注入功能)
|
|