PhalApi 2.x 版本完美诠释
2.x 版本系统架构
PhalApi 2.x 版本的系统架构如下:
主要分为三层:
phalapi/phalapi 项目应用层,可使用phalapi/phalapi搭建微服务、接口系统、RESTful、WebServices等。
扩展类库 扩展类库是指可选的、可重用的组件或类库,可以直接集成使用,由广大开发人员维护分享,对应原来的PhalApi-Library项目。
核心框架 分别两大部分,PhalApi核心部分kernal,以及优化后的notorm。
其中,各自的composer和github项目分别是:
项目 | composer | github |
---|---|---|
phalapi/phalapi | phalapi/phalapi | phalapi/phalapi |
扩展类库 | 由广大开发人员共同维护、分享,composer建议统一注册到phalapi。 | 由广大开发人员共同维护、分享,源代码可维护在开发者各自的Github仓库。 |
核心框架 | phalapi/kernal | phalapi/kernal |
框架核心部分UML静态结构图
PhalApi 2.x 版本的核心框架部分的UML静态结构图,高清版如下所示:
首先,绿色部分的PhalApi\PhalApi类是整个接口系统的访问入口,也就是项目应用系统、客户端使用的关键所在。相关的调用代码,可以参考统一入口文件的实现代码片段。
$pai = new \PhalApi\PhalApi();
$pai->response()->output();
只需要两行代码,便可完成对接口服务的请求响应。
其次,是黄色部分的Api、Domain和Model这三层,也就是我们常说的ADM分层架构。这部分,需要开发人员关注,因为这也是具体项目开发需要自己实现的部分。
最后,是红色部分的DI依赖注入,也是整个框架的核心所在。不仅在核心框架中使用频率最高,乃至在项目应用中也会经常被用到。
核心执行流程时序图
PhalApi 2.x 版本的核心执行流程时序图,与1.x 版本基本一致,可以看出,不管技术如何升级,PhalApi的最初的核心时序流程仍保持着活力。唯一变化的是各个类名。