Skip to content
季悠然 edited this page Dec 29, 2021 · 4 revisions

规范

没有啥规范,把模块文件夹放在App/Module目录内就好。每个模块文件夹名与类名应保持一致且模块文件夹应包含一个module.yml文件。

模块配置文件

每个模块文件夹内的module.yml为其配置文件。内容如下

  • name: 模块名
  • des: 模块描述
  • enable: 是否启用
  • func: 功能列表

这些都是写给人看的,不是写给程序看的,所以随意就好。示例如下:

name: Deutsch
des: 德语学习助手
enable: true
func:
  - 单词搜索
  - 每日一句

注册路由

如果你的插件需要用到路由,那么可以通过这种方式注册

name: Note
des: 便签
enable: true
func:
  - 新增便签
  - 修改便签
  - 删除便签
route:
  - get:
      note/get/(:any): App\Module\Note\Note@getNote
      note/delete/(:any): App\Module\Note\Note@deleteNote
  - post:
      note/modify/(:any): App\Module\Note\Note@modifyNote

具体规则如下:

匹配规则: 类名@方法

确保你有一定的PHP命名空间的知识🧀。任何方法的返回值需要为一个数组,包含三个键codehttpcontent,就像下面这样

$result = [
    "code" => "10002", //自定义的状态码
    "http" => 404,  //HTTP状态码
    "content" => "吔?找不到了!" //返回的内容
];

三个字段的含义如下

  • code: 返回的状态码
  • http: 响应的HTTP状态码(可选,默认200)
  • content: 需要返回的实际数据

BaseController

框架提供了一个BaseController基类,可以方便地调用一些内部方法(其实也没啥方法)

use App\Core\BaseController;

class test extends BaseController {
    //...
}

BaseController之database

继承了BaseController后可以直接使用$this->database来访问数据库。数据库框架使用的是Medoo,具体用法可以看看这里 https://medoo.lvtao.net/

BaseController之cache

继承了BaseController后可以直接使用$this->cache来操作缓存,目前的缓存是我自己瞎搞的key-value型的文件缓存,没啥子用,不过好歹说一下

$this->cache->newCache('key'); //创建缓存, 无返回值
$this->cache->haveCache('key'); //是否有缓存,布尔型返回值
$this->cache->readCache('key'); //读取缓存,返回缓存值
$this->cache->writeCache('key', $value); //设置缓存,无返回值

值都被JSON序列化后存放在缓存文件夹中。可以在配置文件中设置缓存文件夹路径。 适合用于缓存别的API的返回值。

Clone this wiki locally