IMI 是基於 Swoole 開發的協程 PHP 開發框架,擁有常駐內存、協程異步非阻塞IO等優點。
IMI 框架文檔豐富,上手容易,致力於讓開發者跟使用傳統 MVC 框架一樣順手。
IMI 框架底層開發使用了強類型,易維護,性能更強。支持 Aop ,支持使用註解和配置文件注入,完全遵守 PSR-3、4、7、11、15、16 標準規範。
框架的擴展性強,開發者可以根據實際需求,自行開發相關驅動進行擴展。不止於框架本身提供的功能和組件!
我們認為一個框架不僅需要代碼健壯、簡單易用,文檔也是十分重要,所以文檔的完善是我們工作的重點,相信一個好的文檔能夠讓你事半功倍!
歡迎有志之士加入我們,一起開發完善!技術好的貢獻代碼,文筆好的貢獻文檔,有好的想法也歡迎與我們交流!
框架暫未實戰驗證,請無能力閱讀和修改原始碼的開發者,暫時不要用於實際項目開發,等待我們的實戰檢驗完善,我們不希望因此為您造成不便!
官網:https://www.imiphp.com/
文檔手冊:https://doc.imiphp.com/
代碼倉庫:
碼云:https://gitee.com/yurunsoft/IMI
Github:https://github.com/Yurunsoft/IMI
空項目:https://gitee.com/yurunsoft/empty-imi-demo
功能Demo:https://gitee.com/yurunsoft/imi-demo
目前框架還未成熟,暫只支持php7.0+swoole2.2,未來將支持php7.1以上+swoole4.0!
前期,計劃主要完善 HTTP 服務開發,優先實現:常駐內存,避免重複加載帶來的性能損耗,提升海量性能;協程異步,提高對 I/O 密集型場景並發處理能力(如:微信開發、支付、登錄等)。
待 HTTP 服務開發完善後,然後下一步會增加 TCP、UDP、WebSocket 開發支持,最後才是考慮分布式、微服務的解決方案。
Aop (註解 / 配置文件)
Container (PSR-11)
註解
全局事件/類事件
HttpServer
HttpRequest/HttpResponse (PSR-7)
Http 中間件、註解路由、配置文件路由 (PSR-15)
Session (File + Redis)
View (html + json + xml)
日誌 (PSR-3 / File + Console)
緩存 (PSR-16 / File + Redis)
Redis 連接池
協程 MySQL 連接池
PDO 連接池
協程 PostgreSQL 連接池
Db 連貫操作
關係型資料庫 模型 ORM
跨進程共享內存表 模型 ORM
Task 異步任務
命令行開發輔助工具
圖形化管理工具
項目熱更新
RPC 遠程調用
WebSocket 伺服器相關……
TCP 伺服器相關……
日誌、緩存都支持:多驅動 + 多實例 + 統一操作入口
所有連接池都支持:同步 + 異步 + 多驅動 + 多實例
完全開發手冊
IMI 遵循 Apache2 開源協議發布,並提供免費使用。
感謝以下開源項目 (按字母順序排列) 為 IMI 提供強力支持!
在機緣巧合下,我偶然接觸到了 Swoole 2.x 版本,在簡單了解和demo調試後我認為,Swoole 可能是未來 PHP 微服務架構開發必不可少的擴展。
眾所周知,PHP 是被其它語言看不起的宇宙第一程式語言,PHP 僅僅是一個腳本語言,僅僅是一個模版引擎,沒有強類型規範開發,維護非常不便。
PHP 7 來了,強類型的支持加入,增強了 PHP 的可維護性並提升了性能,IMI 底層就使用了非常多的強類型進行開發和規範。
宇潤我在 2013 年開發並發布了第一個框架 YurunPHP,一直維護使用至今,非常穩定,並且有文檔。
我待過的公司有用過這個框架,我還是很幸運的,有機會在實戰中不斷改進完善框架。
PHP 進入 Swoole 時代,我本著學習 Swoole 並且嘗試能否開發一個基於 Swoole 的框架的想法,接觸了解到了 EasySwoole 和 Swoft。
喜聞樂見的是,我先參考了一下這兩個框架的文檔和用法,再簡單看了一下原始碼。我決定還是先從 Swoole 看起,實戰是最可以鍛鍊人的。於是我走上了 IMI 開發的不歸路……