此部分類庫(kù)為PhalApi框架下可重用的擴(kuò)展類庫(kù),各個(gè)擴(kuò)展相自獨(dú)立,可以根據(jù)需要自動(dòng)安裝使用。
此擴(kuò)展類庫(kù)可以是基于已有的第三方開源類庫(kù)的二次開發(fā)和集成,也可以是自主研發(fā)的組件、工具、模塊。通過(guò)使用可重用的擴(kuò)展類庫(kù),可大大減少開發(fā)成本,并且慢慢地會(huì)發(fā)現(xiàn),原來(lái)編程本來(lái)就是一件如此簡(jiǎn)單的事情,就像搭積木一樣。
正如我們一直提倡的:接口,從簡(jiǎn)單開始!
擴(kuò)展類庫(kù)composer名稱 | 擴(kuò)展類庫(kù)名稱 | 簡(jiǎn)要說(shuō)明 |
---|---|---|
APK | APK文件解包處理 | 對(duì)APK進(jìn)行解包,支持絕大部分APK文件處理。 |
Auth | Auth權(quán)限擴(kuò)展 | 實(shí)現(xiàn)了基于用戶與組的權(quán)限認(rèn)證功能,與RBAC權(quán)限認(rèn)證類似,主要用于對(duì)服務(wù)級(jí)別的功能進(jìn)行權(quán)限控制。 |
phalapi/cli | CLI擴(kuò)展類庫(kù) | 可用于開發(fā)命令行應(yīng)用,基于GetOpt,主要作用是將命令參數(shù)進(jìn)行解析和處理。 |
Cluster | 基于PhalApi的DB集群拓展 | 為了解決大量數(shù)據(jù)寫入分析的問(wèn)題,支持大量select、和大量insert。 |
CryptTraffic | 移動(dòng)設(shè)備通信加密 | 用于移動(dòng)設(shè)備通信加密。 |
Excel | PhalApi-Excel | 讀取Excel。 |
Facepp | face++接口 | face++接口。 |
phalapi/fast-route | FastRoute快速路由 | 基于FastRoute實(shí)現(xiàn),通過(guò)配置實(shí)現(xiàn)自定義路由配置,從而輕松映射service接口服務(wù)。 |
Image | PhalApi-Image圖像處理 | 按照尺寸壓縮上傳圖片,參考自ThinkPhP圖形處理。 |
KafKa | 簡(jiǎn)單舒適的PHP-KafKa拓展 | 基于rdKafKa封裝的一個(gè)簡(jiǎn)單舒適KafKa拓展。 |
Log4php | 基于log4php的日志擴(kuò)展 | 兼容PhalApi日志的接口操作,同時(shí)基于log4php完成更多出色的日志工作。 |
Medoo | Medoo數(shù)據(jù)庫(kù)驅(qū)動(dòng) | Medoo數(shù)據(jù)庫(kù)驅(qū)動(dòng)。 |
OSS | PhalApi-OSS阿里云OSS包 | 對(duì)阿里云的OSS文件服務(wù)器的封裝。 |
PHPExcel | PhalApi-PHPExcel擴(kuò)展 | 提供了更為強(qiáng)大的Excel處理功能。 |
PHPMailer | 基于PHPMailer的郵件發(fā)送 | 用于發(fā)送郵件。 |
PHPRPC | 代理模式下phprpc協(xié)議的輕松支持 | 可用于phprpc協(xié)議的調(diào)用,服務(wù)端只需要簡(jiǎn)單添加入口即可完美切換。 |
Pay | 基于PhalApi的第三方支付擴(kuò)展 | 支持微信支付和支付寶支付。 |
Payment | 微信支付及支付寶支付擴(kuò)展 | 支持微信支付和支付寶支付。 |
Qiniu | 七牛云存儲(chǔ)接口調(diào)用 | 可用于將圖片上傳到七牛云存儲(chǔ),或者七牛SDK包提供的其他功能。 |
RabbitMQ | PhalApi-RabbitMQ隊(duì)列拓展 | 基于隊(duì)列標(biāo)桿中的RabbitMQ的隊(duì)列擴(kuò)展。 |
Redis | 基于PhalApi的Redis拓展 | 提供更豐富的Redis操作,并且進(jìn)行了分庫(kù)處理可以自由搭配。 |
SMS | PhalApi-SMS容聯(lián)云短信服務(wù)器擴(kuò)展 | 基于容聯(lián)云通訊,發(fā)送短信。 |
Smarty | 基于PhalApi的Smarty擴(kuò)展 | 基于老牌的PHP模版引擎Smarty,提供視圖渲染功能。 |
SOAP | SOAP擴(kuò)展 | 使用PHP官方提供的SOAP協(xié)議,用于搭建Web Services。 |
Swoole | Swoole擴(kuò)展 | 基于swoole,支持的長(zhǎng)鏈接和異步任務(wù)實(shí)現(xiàn)。 |
phalapi/task | 計(jì)劃任務(wù)擴(kuò)展 | 用于后臺(tái)計(jì)劃任務(wù)的調(diào)度。 |
ThirdLogin | 第三方登錄擴(kuò)展 | 第三方登錄。 |
Translate | PhalApi-Translate百度地圖翻譯擴(kuò)展 | 基于百度翻譯的翻譯。 |
UCloud | 圖片上傳擴(kuò)展 | 用于圖片文件上傳。 |
User | User用戶擴(kuò)展 | 提供用戶、會(huì)話和集成第三方登錄。 |
View | Vuew視圖擴(kuò)展 | 提供視圖渲染功能。 |
微信開發(fā)擴(kuò)展 | 可用于微信的服務(wù)號(hào)、訂閱號(hào)、設(shè)備號(hào)等功能開發(fā)。 | |
Xhprof | 性能分析工具PhalApi-Xhprof | 對(duì)Facebook開源的輕量級(jí)PHP性能分析工具進(jìn)行了封裝拓展。 |
YoukuClient | 優(yōu)酷開放平臺(tái)接口擴(kuò)展 | 用于調(diào)用優(yōu)酷開放平臺(tái)的接口。 |
Zip | PhalApi-Zip壓縮文件處理 | 用于處理文件壓縮。 |
溫馨提示:未有composer鏈接的,表示尚未從1.x遷移到2.x版本,可在原來(lái)的Phalapi-Library擴(kuò)展類庫(kù)項(xiàng)目中查閱。
對(duì)于某個(gè)擴(kuò)展類庫(kù),當(dāng)需要使用時(shí),可以按“安裝、配置、使用”三步曲進(jìn)行。
擴(kuò)展類庫(kù)的安裝很簡(jiǎn)單,在PhalApi 2.x版本下,直接通過(guò)在composer.json文件中配置需要依賴的擴(kuò)展類庫(kù)即可。
例如,項(xiàng)目本身自帶的Task擴(kuò)展類庫(kù):
{
"require": {
"phalapi/task": "2.0.*"
}
}
配置好后,執(zhí)行composer update
更新操作即可。
至此,便完成了擴(kuò)展類庫(kù)的安裝,相當(dāng)簡(jiǎn)單。
根據(jù)不同的擴(kuò)展類庫(kù),其配置和注冊(cè)的情況不同,有些不需要配置也不需要注冊(cè),有些需要配置、注冊(cè)中的一種,有些可能配置、注冊(cè)都需要。
這里說(shuō)的配置是指在項(xiàng)目配置文件./config/app.php內(nèi)添加對(duì)應(yīng)擴(kuò)展類庫(kù)的配置,配置選項(xiàng)的路徑通常為:app.擴(kuò)展類庫(kù)名稱
。此外,有的擴(kuò)展類庫(kù)可能還需要配置數(shù)據(jù)庫(kù)配置文件./config/dbs.php。
而注冊(cè)則是指將對(duì)應(yīng)的擴(kuò)展類庫(kù)注冊(cè)到DI容器\PhalApi\DI()
中,需要在./config/di.php文件中配置。注冊(cè)的服務(wù)名稱通常為擴(kuò)展類庫(kù)的小寫名稱。
注冊(cè)好后,便可以在項(xiàng)目需要的位置進(jìn)行調(diào)用了。
不同的擴(kuò)展類庫(kù),其提供的功能不同,所以具體的使用也不盡相同。當(dāng)使用到某個(gè)擴(kuò)展類庫(kù)時(shí),可以參考對(duì)應(yīng)的文檔說(shuō)明。有的擴(kuò)展可能需要調(diào)用其內(nèi)部接口才能實(shí)現(xiàn)對(duì)應(yīng)的功能,有些擴(kuò)展可能提供了直接可用的接口服務(wù)。
為了統(tǒng)一擴(kuò)展類庫(kù)的風(fēng)格、便于用戶更容易使用,這里建議:
\PhalApi\DI()->config->get('app.擴(kuò)展包名')
中,避免配置沖突;在應(yīng)用項(xiàng)目的實(shí)際開發(fā),我們也可以有意識(shí)地將一些通用的工具和操作與業(yè)務(wù)分離,以便可以在項(xiàng)目?jī)?nèi)更好地重用。當(dāng)抽離成工具或者通用類后,則可以進(jìn)一步推廣到公司內(nèi)其他項(xiàng)目,即組件復(fù)用。如果覺得可以,則發(fā)揚(yáng)開源精神,分享給社區(qū)。這也是符合從微架構(gòu)到應(yīng)用構(gòu)架、系統(tǒng)架構(gòu)、乃至企業(yè)架構(gòu)的演進(jìn)之路。
+
更多建議: