一個輕量的PHP 框架
一個簡單的PHP "框架"?又或者可以說是應用模板。
ORM 使用Eloquent ORM ,路由使用FastRoute
大部分的接口設計參考了Laravel,採用門面模式(Facade) ,單例模式(Singleton) ,控制反轉(IoC) ,以及依賴注入(DI) 的設計,部分也用到了其他的設計模式。
集成了一個IoC 容器,兼容PSR-11
支持和ReactJS 集成,其他前端框架也是可以的,不過我只寫了ReactJS 的配置。
支持PSR-15 標準的中間件。
封裝了請求和響應,根據PSR-7 標准進行設計,但增加了類似Laravel 的接口。
支持通過註解設置依賴注入,路由以及中間件
支持Aop,但是由於沒有使用繼承代理的方式,所以支持切入的範圍有限,目前支持門面切入和控制器切入,同時在容器中也添加了相應的方法提供切入的功能。
之所以不使用繼承代理的方式,是因為PHP 沒有類似Java 中的Proxy 反射接口,PHP 繼承代理需要使用eval 或require 的方式動態聲明class,會有安全的風險。
提供一個簡單的觀察者實現,雖然說一般也沒啥用。
使用APCu 來緩存註解
提供了一個任務隊列的實現,類似於協程,可以主動讓出,但是由於PHP 沒有多線程機制所以無法實現非阻塞。
由於首次寫這種項目,所有會有很多設計缺陷和漏洞,不建議將該項目用於任何生產環境,僅用於學習就可以啦,若您有更好的建議或者發現不足的地方歡迎反饋。
寫這個項目的目的是為了下一個博客項目準備的,因為不打算用任何框架,所以就有了這個項目2333。
git clone https://github.com/syfxlin/xkphp.gitcomposer install某些情況下laminas/laminas-httphandlerrunner可能無法正常安裝,此時就需要先安裝laminas/laminas-diactoros
yarnphp -r " echo base64_encode(openssl_random_pseudo_bytes(32)); "composer migration:upphp -S 0.0.0.0:8000 -t public暫無
XK-PHP 由Otstar Lin 和下列貢獻者的幫助下撰寫和維護。
Otstar Lin -Personal Website · Blog · Github
根據Apache License 2.0 許可證開源。