##PhalApi框架擴展類庫
### -- 致力于與開源項目一起提供企業級的解決方案!
此部分類庫為 [PhalAPi框架](http://git.oschina.net/dogstar/PhalApi) 下的擴展類庫包,各個擴展包各自獨立,可以根據需要自動下載安裝。
雖然此部分的擴展很多都是基于已有的第三方開源實現,或者開發同學自己實現分享的,但我們所做的不只是代碼的搬運工,更多的是在系統架構上的組件庫重用,以及在此引入 **防腐層** ,避免進入 **供應商鎖定(Vendor Lock-In)** 。
除此之外,可以在PhalApi框架的基礎上,快速引入符合我們國內實際項目開發需要的各種擴展。如時,您會發現,原來編程本來就是一件如此簡單的事情,就像搭積木一樣。
正如我們一直推薦的:
```
接口,從簡單開始!
```
##目前已提供的擴展類庫 - 針對使用者
###1、微信開發
此擴展可用于微信的服務號、訂閱號、設備號等功能開發,則PhalApi框架下簡單配置即可開發使用。
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.1%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%BE%AE%E4%BF%A1%E5%BC%80%E5%8F%91)
###2、代理模式下phprpc協議的輕松支持
此擴展可用于phprpc協議的調用,服務端只需要簡單添加入口即可完美切換。
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.2%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F%E4%B8%8Bphprpc%E5%8D%8F%E8%AE%AE%E7%9A%84%E8%BD%BB%E6%9D%BE%E6%94%AF%E6%8C%81)
###3、基于PHPMailer的郵件發送
此擴展可用于發送郵件。
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.3%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%9F%BA%E4%BA%8EPHPMailer%E7%9A%84%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81)
###4、優酷開放平臺接口調用
此擴展可用于調用優酷開放平臺的接口。
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.4%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%BC%98%E9%85%B7%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8)
###5、七牛云存儲接口調用
此擴展可以用于將圖片上傳到七牛CDN,或者其他七牛接口的調用。
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.5%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%B8%83%E7%89%9B%E4%BA%91%E5%AD%98%E5%82%A8%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8)
###6、用戶、會話和第三方登錄集成
此類庫主要特點有:
+ 1、可以和第三方登錄集成,包括:微信登錄、新浪登錄、QQ登錄
+ 2、為客戶端提供了直接可以調用的登錄接口
+ 3、為服務端提供了直接可以檢測用戶登錄態的操作
+ 4、支持token落地、高效緩存和分布式的數據庫存儲
+ 5、展示了如何開發一個項目級的類庫、包括數據庫配置、翻譯等
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.8%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E7%94%A8%E6%88%B7%E3%80%81%E4%BC%9A%E8%AF%9D%E5%92%8C%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95%E9%9B%86%E6%88%90)
###7、swoole支持下的長鏈接和異步任務實現
目前,此擴展類庫提供了:
+ 長鏈接的接口調用
+ 異步計劃任務的調用
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.9%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9Aswoole%E6%94%AF%E6%8C%81%E4%B8%8B%E7%9A%84%E9%95%BF%E9%93%BE%E6%8E%A5%E5%92%8C%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E5%AE%9E%E7%8E%B0)
###8、新型計劃任務
此擴展類型用于后臺計劃任務的調度,主要功能點有:
+ 1、提供了Redis/文件/數據庫三種MQ隊列
+ 2、提供了本地和遠程兩種調度方式
+ 3、以接口的形式實現計劃任務
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.6%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E6%96%B0%E5%9E%8B%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1)
###9、Auth 權限擴展 (由@黃苗筍提供)
實現了基于用戶與組的權限認證功能,與RBAC權限認證類似,主要用于對服務級別的功能進行權限控制,主要功能點有:
+ 1、提供了接口服務維度的權限驗證
+ 2、提供了可配置的組與規則
+ 3、支持免檢用戶
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi-Library/wikis/Auth-%E6%9D%83%E9%99%90%E6%89%A9%E5%B1%95%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3)
###11、FastRoute快速路由
此擴展基于  實現,需要 **PHP 5.4.0** 及以上版本,可以通過配置實現自定義路由配置,從而輕松映射到PhalApi中的service接口服務。,主要有:
+ 1、基于FastRoute實現
+ 2、需要PHP 5.4.0 及以上版本
+ 3、通過配置文件來實現自定義路由,并映射到service
+ 4、可兼容無路由的歷史URI
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.11%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%9F%BA%E4%BA%8EFastRoute%E7%9A%84%E5%BF%AB%E9%80%9F%E8%B7%AF%E7%94%B1)
###12、基于PhalApi的DB集群拓展DB_Cluster (由@喵了個咪提供)
為應對海量數據分析與統計,提供針對分表分庫統一封裝的數據庫操作接口,主要用于解決大量數據寫入分析的問題。請注意:V0.1bate版本,很多功能尚不完善,只提供技術交流使用,請不要用于生產環境。主要特點有:
+ 1、適用于大量select和大量的insert的業務場景
+ 2、基于架構思維的實現
+ 3、分表分庫算法介紹
+ 4、基準測試對比
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi-Library/tree/master/DB_Cluster/?dir=1&filepath=DB_Cluster&oid=a50865e4e86d8105bdc30c12a8193db1f119cdb5&sha=8c16393c1286f3921cb920dd21a4aab5eb05f8a3)
###13、基于PhalApi的Redis_Base拓展 (由@喵了個咪提供)
主要提供更豐富的Redis操作,并且進行了分庫處理可以自由搭配
+ 1、適用于對Redis需要其他數據類型操作的業務
+ 2、可以用于隊列腳本,封裝了隊列處理
[更多請點這里查看使用文檔](http://git.oschina.net/dogstar/PhalApi-Library/wikis/%E5%9F%BA%E4%BA%8EPhalApi%E7%9A%84Redis%E6%8B%93%E5%B1%95--%E6%96%87%E6%A1%A3)
##擴展開發指南 - 針對開發者
為了統一擴展類庫的風格、便于用戶更容易使用,這里建議:
+ 代碼:統一放置在Library目錄下,各擴展包各自一個目錄,盡量Lite.php入口類,遵循PEAR包命名規范;
+ 配置:統一放置在DI()->config->get('app.擴展包名')中,避免配置沖突;
+ 文檔:統一提供WIKI文件對擴展類庫的功能、安裝和配置、使用示例以及運行效果進行說明;
##1.19.4 從微架構到擴展類庫的演進
在應用項目的實際開發,我們也可以有意識地將一些通用的工具和操作與業務分離,以便可以在項目內更好地重用。當抽離成工具或者通用類后,則可以進一步推廣到公司內其他項目,即組件復用。如果覺得可以,則發揚開源精神,分享給社區。這也是符合從微架構到應用構架、系統架構、乃至企業架構的演進之路。
- 歡迎使用PhalApi!
- 接口,從簡單開始!
- [1.1]-下載與安裝
- [1.2]-創建一個自己的項目
- [1.3]-在線體驗
- [1.4]-文檔、幫助和官網
- [1.10]-對PhalApi框架的抉擇
- [1.11]-快速入門(backup)
- [1.12]-參數規則:接口參數規則配置
- [1.13]-統一的接口請求方式:_sevice=XXX.XXX
- [1.14]-統一的返回格式和結構:ret-data-msg
- [1.15]-數據庫操作:基于NotORM的使用及優化
- [1.16]-配置讀取:內外網環境配置的完美切換
- [1.17]-日記紀錄:簡化版的日記接口
- [1.18]-快速函數:人性化的關懷
- [1.19]-DI服務速查:各資源服務一覽表
- [1.20]-DB操作:數據庫基本操作速查
- [1.21]-類的自動加載:遵循PEAR包的命名規范
- [1.22]-簽名驗證:自定義簽名規則
- [1.23]-請求和響應:GET和POST兩者皆可得及超越JSON格式返回
- [1.24]-緩存策略:更靈活地可配置化的多級緩存
- [1.25]-國際化翻譯:為走向國際化提前做好翻譯準備
- [1.26]-數據安全:數據對稱加密方案
- [1.27]-精益開發:更富表現力的Model層和重量級數據獲取的應對方案
- [1.28]-COOKIE:對COOKIE原生態的支持及記憶加密升級版
- [1.29]-開放與封閉:多入口和統一初始化
- [1.30]-保持的力量:接口開發最佳實踐
- [1.31]-新型計劃任務:以接口形式實現的計劃任務
- [2.11]-核心思想:DI依賴注入-讓資源更可控
- [2.12]-海量數據:可配置的分庫分表
- [2.13]-接口調試:在線SQL語句查看與性能優化
- [2.14]-測試驅動開發:意圖導向編程下的接口開發
- [2.15]-演進:新型計劃任務續篇
- [2.16]-領域驅動設計:應對復雜領域業務的Domain層
- [2.17]-微服務:Api接口服務層
- [2.18]-定制化:資源服務的再實現
- [2.19]-擴展庫:可重用的擴展類庫
- [2.20]-約定編程:架構明顯的編程風格
- [2.21]-服務器統一部署方案簡明版:CentOs---Nginx---php-fpm---MySql-[--Memcached]
- [2.22]-更多工具:精益項目和團隊建設
- [3.1]-擴展類庫:微信開發
- [3.2]-擴展類庫:代理模式下phprpc協議的輕松支持
- [3.3]-擴展類庫:基于PHPMailer的郵件發送
- [3.4]-擴展類庫:優酷開放平臺接口調用
- [3.5]-擴展類庫:七牛云存儲接口調用
- [3.6]-擴展類庫:新型計劃任務
- [3.8]-擴展類庫:用戶、會話和第三方登錄集成
- [3.9]-擴展類庫:swoole支持下的長鏈接和異步任務實現
- [3.11]-擴展類庫:基于FastRoute的快速路由
- [4.2]-開發實戰2:模擬優酷開放平臺接口項目開發
- [4.3]-開發實戰3:一個簡單的小型項目開發(奔跑吧兄弟投票活動)
- [5.1]-架構與思想:PhalApi核心設計和思想解讀
- [5.2]-雜談:扯一些PhalApi的前世和今生
- [5.3]-框架總結:術語表和PHP開發建議
- [5.4]-許可
- [5.5]-聯系和加入我們
- [5.6]-更新日記
- [5.8]-致框架貢獻者:加入PhalApi開源指南
- [6.1]-基于接口查詢語言的SDK包
- [6.2]-SDK包(JAVA版)
- [6.3]-SDK包(PHP版)
- [6.4]-SDK包(Objective-C版)
- [6.5]-SDK包(javascript版)
- [6.6]-SDK包(Ruby版)
- [8.1]-PhalApi視頻教程
- 附錄1:接口文檔參考模板