# 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](https://packagist.org/packages/phalapi/phalapi)|[phalapi/phalapi](https://github.com/phalapi/phalapi)
擴展類庫|由廣大開發人員共同維護、分享,composer建議統一注冊到[phalapi](https://packagist.org/packages/phalapi/)。|由廣大開發人員共同維護、分享,源代碼可維護在開發者各自的Github倉庫。
核心框架|[phalapi/kernal](https://packagist.org/packages/phalapi/kernal)|[phalapi/kernal](https://github.com/phalapi/kernal)
## 框架核心部分UML靜態結構圖
PhalApi 2.x 版本的核心框架部分的UML靜態結構圖,高清版如下所示:

首先,綠色部分的PhalApi\PhalApi類是整個接口系統的訪問入口,也就是項目應用系統、客戶端使用的關鍵所在。相關的調用代碼,可以參考統一入口文件的實現代碼片段。
```php
$pai = new \PhalApi\PhalApi();
$pai->response()->output();
```
只需要兩行代碼,便可完成對接口服務的請求響應。
其次,是黃色部分的Api、Domain和Model這三層,也就是我們常說的ADM分層架構。這部分,需要開發人員關注,因為這也是具體項目開發需要自己實現的部分。
最后,是紅色部分的DI依賴注入,也是整個框架的核心所在。不僅在核心框架中使用頻率最高,乃至在項目應用中也會經常被用到。
## 核心執行流程時序圖
PhalApi 2.x 版本的核心執行流程時序圖,與1.x 版本基本一致,可以看出,不管技術如何升級,PhalApi的最初的核心時序流程仍保持著活力。唯一變化的是各個類名。
