分类 PHP 下的文章

[LyApi News] V1.3.3 - 新特性


在 2019/08/14 LyApi更新了1.3.3版本,这个版本引入了一些神奇的功能 ...

返回 Code 和 Message :

这个功能在1.3.0就已经增加,但在1.3.3版本再次完善。

有时候我们希望运行成功的接口的状态码和信息并不是定死的,而是可以自定义的:

来试试这段代码:

return array(
    "#code" => 233,
    "#msg" => "Hello Custom Message"
    // 你的数据返回 ....
);

运行结果为:

{"code":233,"data":YourData,"msg":"Hello Custom Message"}

可以看到,在我们程序运行成功后,我们依旧可以自定义code和msg的内容!

!!! 更新在V1.3.3的新特性:

我们可以对自定义结构的值进行设置了:

先在api.php配置文件中增加自定义结构:

'DEFAULT_RESPONSE' => array(            //响应数据结构
    'code' => '$code',
    'data' => '$data',
    'msg' => '$msg'
    'using' => '$usi'                // 就是增加这个,一个新的内容
)

接着,对上面的代码进行修改:

return array(
    "#code" => 233,
    "#msg" => "Hello Custom Message",
    "#usi" => true
    // 你的数据返回 ....
);

此时的运行结果为:

{"code":233,"data":YourData,"msg":"Hello Custom Message","using":true}

可以看到,我们成功的设置using为: true !!!

类变量设置 Code 和 Message :

上一个方法很简单,但是我们还准备了另外一种方法供大家选择:

我们可以直接在函数中使用一个方法:$this->SetFuncData(Funcname,Data);

它接受两个参数,当前函数名(一定不能写错)和 存入的数据!

$this->SetFuncData('Test',[
    'code' => 123,
    'msg' => 'Hello Demo.Test'
]);

return YourData;

程序运行结果:

{"code":123,"data":YourData,"msg":"Hello Demo.Test"}

还有一种方法:

$this->SetFuncData('Test',[
    'code' => 123,
    'data' => YourData,
    'msg' => 'Hello Demo.Test'
]);

程序运行结果和上面的一样!

我们省略了return步骤,将data直接设置到了函数数据中,也是可以正常运行的!

关于上面两个特性的优先级 :

当我们同时使用上面两个特性时,程序会以哪个为结果呢?

答案是: 返回(Return)方法 : 如果两个同时存在时,程序会使用Return的数据作为结果。


[LyApi News] V1.3.0 - 插件系统


LyApi插件系统

插件系统添加于: 框架版本 V1.3.0

关于LyApi插件系统

LyApi提供插件系统主要是为了让接口开发更加简单,你可以使用别人开发的插件,避免重复造轮子。

插件下载及发布:官方论坛 OR QQ交流群

LyApi插件代码结构

插件代码将被放置在 ./plugin 目录下!

目录下将会带有两个文件夹:

  • Core - 插件核心代码,基本上所有插件都依赖于本文件
  • Template - 插件开发模板,可快速完成插件开发

下载的插件也需放在这个目录下(插件目录名不可随意更改)。

LyApi插件引入方法

安装插件后我们该如何使用插件呢?

有两种方法:

// 通过 DI 进行动态获得插件中的某个类: 
$plugin = DI::PluginDyn('插件名','类名',类参数...);

//比如获取PConfig的PConfig类: 
$TestConfig = DI::PluginDyn('PConfig','PConfig','Test');
//直接创建插件类
$config = new PConfig('Test');

PS: 如无法加载插件,请检查插件目录名和命名空间是否一致。

插件前置系统

一些插件可能需要另外一个插件作为前置!这个时候插件作者应该会叙述清楚到底需不需要安装任何插件作为前置。

比如在READEME中声明,也可以给一个前置检测的函数。

LyApi插件开发

插件开发其实挺简单,就像我们平时封装类一样。

QQ截图20190810000303.png

这是我开发的PConfig插件:可以看到,我们在构造函数中接收了插件需要的参数,并设置了插件信息(插件信息必须设置)。

插件类是继承了同目录下的Core插件的,这会为我们的开发带来很多帮助。

接下来,我们只需要编写自己需要的函数即可。

PS: 开发插件时建议直接使用Template模板,模板会告诉你你到底需要做什么:

QQ截图20190810000933.png

其他内容

博客主要对一些更新信息作出补充,其他内容还请前往官方文档查看