mr小卓X 发布的文章

[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

其他内容

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


Electron代码无法在其他电脑运行


之前的Electron程序都是在家里用Windows系统写的。今天有事要出门,便把代码拷到MacBook上。运行的时候各种报错,当时心里还在想“这跨平台不可靠啊”,结果一查Electron版本才发现:Mac上是2.0.9,最新版本是5.0.7。我便把版本更新了一下,程序就可以正常运行了!

把更新指令记录一下:

安装 Electron 最新稳定的版本:

npm install --save-dev electron

现有项目更新到最新的稳定版本(我使用的是这个指令):

npm install --save-dev electron@latest

我与编程的不解之缘


我与编程的不解之缘

初一下学期,因为各种原因,我离开了学校,在家学习。这使我有更多的时间兼顾我更多的爱好,有一天我意外的加入了一个“QQ机器人”群,群里有着一个很好玩的机器人,你可以和他互动,可以和他玩游戏!我对这种机器人产生了强烈的兴趣,便开始在网上查找QQ机器人的资料,了解到这种QQ机器人是使用一种QQ协议软件制作的,用户可以在软件上登录QQ,然后安装上自己喜欢的插件,就能做出独一无二的机器人!我兴奋的下载了软件,创建了我的第一个QQ机器人,我下载了很多有趣的插件,把我的QQ机器人做的非常有趣!

过了一段时间后,我不再满足于使用别人的插件,我想创造自己的插件!就开始在网上找教程。我发现这种插件是使用一种叫“易语言”的东西做成的,我便开始学习易语言,这是我人生中接触的第一门编程语言!

经过了数月的学习后,我开始开发属于自己的插件!一开始我只是研究一些简单的功能,在不断的学习后,我做出了一些有用的功能,并把它们发布到了论坛,在短时间内下载量突破了一万!这个结果,给了我极大的信心,并激发了我对编程更大的热情。

渐渐地,我不再满足于插件开发,便开始学习网站开发!先是学习了简单的HTML,CSS,Javascript的基础知识!然后开始研究PHP。其实看的PHP教程并不多,我只学习了一点点基础就开始做自己的项目。(当时不会MySQL,只会使用PHPMyAdmin来操作数据库)我一边开发项目,一边学习!遇到什么问题都是第一时间查阅资料,把它搞懂了再继续开发项目。当我的第一个项目完成时,我的PHP基础也学的差不多了!此时我接触到了慕课网,我在上面找到了很多有用的教程,也在此时开始学习MySQL。

后来我了解到Python,听说这门编程语言非常有前途,能干的事情也非常多!我便开始学习Python,我先把慕课网的Python基础教程都看了一遍,再自己尝试着开发Web爬虫,我做的第一款爬虫是从互联网中爬取需要的图片!从那以后,我需要什么内容时,我总能使用爬虫把它搞到手!接着我还学习了Flask、Django这类Web框架的使用,也尝试着做了一些简单Demo。(想学好编程,必须多做项目才行!)平时也喜欢用Python去搞一些个人认为很有趣的东西,比如终端程序、使用Tkinter做的简单的GUI程序 ....

再后来我还接触到很多语言,如Java,C/C++,Ruby,Golang,C# 等。但这些语言我只是简单的使用过,还没有像PHP和Python那样去认认真真学习和研究。

在2018年6月,我了解到了码云,又通过码云了解到了Git和GitHub。我便创建了人生中的第一个开源项目:Terminal-Gitee,这是我使用Python开发的一个爬虫,你可以选择自己想查看的语言,它会自动把这个语言下的所有开源项目显示出来,这样就可以在不打开浏览器的情况下查看码云上的项目了!

我在2018年开发了很多网站,接触到了框架这一知识点,我先简单的学习了ThinkPHP,但是这个框架并不能满足我的需求!我便尝试着开发属于自己的框架。在一个月的努力后,我做出的第一个框架Lolly(远古版本),那时我还不了解Composer,PSR-4等知识,框架没有使用自动加载,导致程序运行非常的慢。在开发项目的时候不断的完善我的框架,框架迎来了一次巨大的更新!我将框架提交到了Composer,并优化了部分程序!后来了解到自动加载,我又将框架代码全部推翻重写,才有了现在的最新版。(最新版的运行速度也不咋地,还需要继续优化)

之后我也接触到了APP开发,自己尝试着开发了一款发表文章的APP。(目前已无法访问,未来会重写程序)在开发程序接口时,感觉这种自己写的接口毫无规范,代码乱七八糟的,便打算开发一款接口开发框架!我先了解了一下目前网上已存在的接口框架,然后开始开发自己的接口框架:LyAPI。这个框架我也一直在维护,从创建项目到现在也快有一年了,我不断的在更新新功能,框架也帮助到了一些开发者。

从2017到现在也有两年了,我学到了很多有用的知识,也有了明确的人生目标。努力朝着自己定的目标前进!加油吧!