大家自己寫過哪些PHP架構或者工具?求連結
回複內容:
大家自己寫過哪些PHP架構或者工具?求連結
我為自己的網站寫了個架構,一直在使用 http://github.com/yeaha/Lysine2,每天處理幾百萬的動態請求
- RESTful風格的controller
- 內建DataMapper方式的ORM實現,比ActiveRecord更方便的是後端不僅僅局限於關係式資料庫,可以方便的切換為mongodb等儲存服務,而model api基本保持不變,且便於分庫和分表
- 支援layout方式的視圖
- mysql/postgresql/sqlite adapter
- 常用緩衝redis/memcached adapter
- 日誌記錄
- 單元測試完整
總計代碼4616行,168K,最大的毛病是沒文檔
Lysine2/src|-- class_files.php|-- context.php|-- core.php|-- curl.php|-- datamapper.php|-- error.php|-- functions.php|-- http.php|-- loader.php|-- logging.php|-- mvc.php|-- service| |-- amqp.php| |-- db| | |-- mysql.php| | |-- pgsql.php| | `-- sqlite.php| |-- db.php| |-- manager.php| |-- memcached.php| `-- redis.php|-- session.php`-- traits.php
phploc統計結果:
Size Lines of Code (LOC) 4616 Comment Lines of Code (CLOC) 203 (4.40%) Non-Comment Lines of Code (NCLOC) 4413 (95.60%) Logical Lines of Code (LLOC) 1567 (33.95%) Classes 1402 (89.47%) Average Class Length 23 Average Method Length 3 Functions 116 (7.40%) Average Function Length 4 Not in classes or functions 49 (3.13%)Complexity Cyclomatic Complexity / LLOC 0.40 Cyclomatic Complexity / Number of Methods 2.41Dependencies Global Accesses 28 Global Constants 2 (7.14%) Global Variables 3 (10.71%) Super-Global Variables 23 (82.14%) Attribute Accesses 432 Non-Static 411 (95.14%) Static 21 (4.86%) Method Calls 530 Non-Static 465 (87.74%) Static 65 (12.26%)Structure Namespaces 12 Interfaces 2 Traits 3 Classes 60 Abstract Classes 5 (8.33%) Concrete Classes 55 (91.67%) Methods 395 Scope Non-Static Methods 370 (93.67%) Static Methods 25 (6.33%) Visibility Public Method 314 (79.49%) Non-Public Methods 81 (20.51%) Functions 26 Named Functions 21 (80.77%) Anonymous Functions 5 (19.23%) Constants 55 Global Constants 5 (9.09%) Class Constants 50 (90.91%)
https://gist.github.com/yeaha/672178
這是一個展示儲存服務路由配置的程式碼片段,用於展示如何分庫
配置好以後由mapper使用,對data model完全透明
我寫了幾個有點另類的架構:
高效能 PHP Socket 伺服器架構 workerman
PHP Thrift Rpc遠程調用架構 workerman-thrift-rpc
PHP Json Rpc遠程調用架構 workerman-json-rpc
PHP聊天室架構 workerman-chat
以上架構都是用PHP Daemon啟動並執行,不用安裝 apache、nginx、php-fpm這些軟體就能直接跑。
workerman效能很強悍,我每天用它處理過億的訂單請求。
這個帖應該是毛遂自薦帖咯?
之前因為很喜歡fatfree的路由控制(說實話單獨的路由控制沒找到比fatfree更讓我喜歡的),但是因為資料庫和模板操作這邊我也有其它喜歡的,所以昨天(還是前天?)把fatfree的路由功能給剝離了出來,不是我自己寫的,不過也算是專屬的(Github沒搜到相關的項目),拿出來分享給題主吧,項目地址是:http://github.com/lizheming/F3router
架構這部分的話再推薦兩個不是我自己寫的東西吧(我是真的很喜歡你造嘛!)。資料庫操作推薦一下喵飯大大的 Medoo 以及模板引擎推薦一下 Twig。不過模板這方面如果是做自己用的東西的話我更傾向於用原生的PHP文法去寫。
架構因為用的東西不多,能說的也就這麼幾個了。關於工具的話,之前因為 Jekyll 和 Octopress 的流行,寫過一個PHP版的靜態部落格產生器。很早些的,大換血過好幾個版本,一直在更新,項目地址是:http://github.com/lizheming/pmblog
能拿得出手的東西就這麼一點了,有問題歡迎反饋。
推薦自己的LitPHP
推薦理由:0.1版本程式碼數=270行,表現力豐富,自由整合任何模板/ORM解決方案,有實際生產項目
官網
Github Repo
開發分支
教程
設計理念
一生PHP功力化繁為簡凝聚而成。除了組織代碼和一些路由之外,沒有任何功能,刪無可刪。也就是說任何功能都由你自己適配上去從而保持100%控制權,任何自己喜歡的模式都可以輕鬆套進去。
做架構的架構,讓每個應用都躺在量身打造的架構中。
代碼:
https://github.com/liaohuqiu/cube-php
文檔:
http://cube-php.liaohuqiu.net/
這三年來一直在用的東西,這個架構支撐起來的業務曾經紅極一時。名字隨便起的,代碼也還沒完全整理好。
好些時間沒寫php了,最近忙裡偷閒,重新拾起,開源出去,了一個念想,換一個紀念。
- 實現標準的autoload規則,允許各種架構接入
- 分庫分表
- 極其簡單的路由
- 對話方塊,ajax請求,用戶端API請求,5分鐘可以上手。
- 附送一個管理後台
- 附送一個JS架構
https://github.com/lloydzhou/router
一個只有100行的路由控制器,算不上架構了。
不使用Regex做路由映射,而是根據pathinfo建立樹形結構,保證路由尋找速度穩定在Olog(n)。
支援hook,可以用來過濾參數,檢查登入等。
支援根據handler參數列表自動擷取變數,與hook結合使用,再也不用滿篇寫GET POST變數了。。。