前言php
公司的APP響應速度比較慢,公司大神決定使用C語言編寫的PHP框架Phalcon 代替原來的框架,響應速度有比較大的提高。之前只是據說過,沒有深刻的瞭解過。即然工做中有用到,便花點時間瞭解了下,你啥都不懂,會被別人鄙視,須要不斷的充電補齊本身的短板啊!html
第一感覺git
花了些時間看了phalcon 框架的文檔,對這個框架有了總體的一些認識,說下個人一些感覺。github
1 主體代碼C語言編寫,執行效率確定比其它純PHP編寫的框架要高;
2 框架功能大而全,全棧式框架,WEB開發相關的組件都有,組件之間低耦合;
3 對象容器以及依賴注入的神奇使用,簡化代碼編寫;
4 不少組件使用適配器模式,方便自定義開發擴展,只要實現適配器接口便可;
5 安全可靠,對WEB常見漏洞提供了相應解決方案,這對團隊開發很是有幫助,想一想最近一些脫庫事件,仍是有些後怕,開發擁有安全意識很是重要;
6 PHQL類SQL數據庫查詢語言,查詢數據很是靈活,感受這個沒啥用;
7 這個框架很靈活,沒有固定的範式,開發時能夠任意組織代碼;
8 提供開發腳手架,枯燥重複的操做有相應的腳本代勞,是我懶人喜好的:)
9 命令行執行任務控制檯
10 事件管理器HOOK機制,這個用起來確定很爽:)
11 基於角色簡單權限管理機制,對於資源權限管理不復雜的應用絕對足夠了redis
框架架構mongodb
之前接觸過比較多的框架,好比CI,Qeephp,Laravel等,發現你們的實現套路基本上差很少,無外乎在MVC三層架構基礎之上作些文章,實現的方式有差別而已。數據庫
單入口
經過一個入口處理客戶端響應,這個須要設置WEB服務器將全部動態腳本請求轉發到單一入口上後端
路由以及分發器
須要設置路由規則,以及路由對應的處理控制器和方法,找到匹配路由以後,經過分發器轉發執行,有一個路由組件和分發器組件實現這2個功能數組
控制器
用於對客戶端請求進行響應,用於鏈接模型和視圖對膠水緩存
模型
業務邏輯層,數據的CRUD操做相關,模型之間的關聯關係管理
緩存層
使用適配器模式,後端支持主流的緩存服務,好比memache,redis ,mongodb 等,若是須要使用其它服務,能夠本身擴展,實現適配器接口就好了
視圖
客戶端視圖渲染,層次結構,視圖繼承,支持內置模版以及自定義模版引擎
多語言
支持多語言,這個對公司業務主要是在海外頗有幫助,話說本身實現也不難,也就一語言包而已,使用PHP數組就能夠了:)
優點
1 功能大而全
2 執行速度快
劣勢
1 學習成本高
2 須要安裝PHP擴展
3 相比純PHP框架維護成本大
適合場景
1 須要快速開發且對性能要求比較高
依賴注入
依賴的服務經過注入的方式得到訪問,這個是Phalcon 框架的基礎,經過依賴注入,各組件之間能夠作到低耦合,又能得到其它服務的能力。依賴注入比較繞,初次瞭解可能會搞的暈頭轉向,熟悉了以後就行了。Phalcon 文檔對依賴注入說的很生動很具體,從問題開始入手,一步一步引導如何實現依賴注入。依賴注入實現原理:建立一個對象容器,註冊服務到對象容器,須要訪問服務的實例經過對象容器訪問服務,不一樣的語言實現方式不同。
後記
說的東西很理論,沒有相關實踐的部分,主要是我只看了文檔介紹,尚未實際使用過,使用過程當中會碰到什麼坑,我如今說不清楚):之後有新系統開發或者業餘搞的項目,會嘗試使用它!
參考資料
【1】Phalcon官方文檔
https://docs.phalconphp.com/en/latest/index.html
https://media.readthedocs.org/pdf/phalcon-php-framework-documentation/latest/phalcon-php-framework-documentation.pdf
【2】Phalcon官方網站
https://phalconphp.com/zh/
【3】Phalcon代碼庫地址
https://github.com/phalcon