鳥哥談php的架構與未來發展
惠新宸於2011年8月加入PHP語言官方開發小組,目前是該組織的唯一一位國人,也是國內最具影響力的PHP技術專家之一。 惠新宸身為知名PHP技術部落格「風雪之隅」(http://www.laruence.com/)的博主, 一直專注於與PHP底層原理的研究與分享。 其中《深入理解PHP原理》系列文章被廣泛推薦, 成為國內PHP語言深度使用和客製化的經典入門教材。他基於PHP擴展開發的PHP框架Yaf, 被譽為最快的PHP開發框架。同時他還是Lua,Taint等PHP擴展的作者。在PHP 5.4開發過程中,他總共為PHP貢獻了近400個交付。本次我們對惠新宸進行了一次採訪,請他分享PHP框架和擴展的知識,以及PHP發展的情況。
InfoQ:請簡單的介紹一下您自己,以及您目前所在團隊的狀況。
惠新宸:大家好,我是惠新宸,陝北人, PHP圈很多朋友叫我鳥哥,趁著這個機會和大家解釋下,我不是《Linux私房菜》的鳥哥,我只是IM暱稱叫”雪候鳥”,又因為在百度的時候,我在工程師中算年長,所以大家才開始這麼叫。
目前我在新浪微博應用架構團隊工作,我們應用架構團隊主要致力於新浪微博LAMP的架構最佳化,以適應高效能和快速開發的需求。
微博每天PV數十億,產生數T級別的數據, 處理過程中任何一個毫秒的優化,一個byte的減少,對我們都是意義重大,這個工作非常有意思也很有挑戰, 到目前為止,我們團隊已經通過一些不改動業務邏輯的優化方法,把微博首頁的回應時間降低了44%,TPS提升了78%。另外,我們團隊也負責技術提升和沈澱工作,這也是一項很有趣的工作,因為分享能讓我們收穫更多。
InfoQ:作為PHP語言官方開發組的唯一一位國人,請您談談加入這個組織之後的一些體會。
惠新宸:「唯一一位」這個頭銜肯定是暫時的,我相信未來會有更多國內開發者加入。我是去年8月份加入PHP開發組, 開發組是一個開源組織, 準確的說,我們應該被稱為Commiters(提交者),有很多不是開發組的同學為PHP提供Patch。
加入以後我對如何運作一個開源專案有了一些新的體會, 其中讓我感受最深的就是各種流程規格。大到發布一個版本的流程規範,小到一個新特性增加的流程規範,這些看似繁瑣的規範,雖然一定程度上導致響應速度緩慢,但卻保證了PHP在成長過程中,盡量不出大事故。
還有一個體會就是, 英語對於技術工作者來說真的很重要,我現在特別後悔本科時沒好好學習英語, 雖然我閱讀資料沒什麼問題,但是在日常交流的時候經常鬧笑話,有個段子,就是開發組有個開發者說,要理解我說的話,需要像讀正規表示式一樣。
InfoQ:長期關注你部落格的人都知道,你一直致力於PHP推廣工作,你個人也在國內最大的幾家網路公司工作過,能談談PHP在國內的發展狀況嗎?
惠新宸:之前在我的部落格上,我也分享過一個數字,就是全球前100萬的站點中,有超過70%的站點是使用PHP開發的。在我看來,PHP易學、易用、易擴展是它能如此流行的主要原因, 易學易用我就不多說,這裡我想主要說一下PHP可擴展性。
PHP提供了一套很強大的擴充建置系統, 使用這套擴充建置系統,我們可以很方便的擴充PHP功能,在PECL擴充庫中,目前已經有超過200個標準擴充。
我在2008年開始做PHP擴充時,網路上幾乎沒什麼相關的中文資料,而現在我們看到,網路資料非常豐富。 越來越多的開發者嘗試透過擴展PHP來解決他們遇到的問題,而PHP的開源精神,又或多或少影響開發者把這些擴展開源給社區,這些正是我認為PHP可以長期發展下去的主要動力。
InfoQ:您是開源框架Yaf的作者,請簡單介紹一下開源框架Yaf的特點。
惠新宸:長久以來,關於PHP要不要使用框架有很多爭論,比較常見的矛盾點是,使用框架後,開發速度變快但性能得不到保證。
Yaf是為了解決這個矛盾點而開發的,它是一個用PHP擴展方式(C語言)實現PHP的MVC框架,它最大特點是高性能(相比於傳統用PHP實現的框架),低資源消耗,同時又能確保快速開發。
Yaf主要提供了路由,分發,自動加載,插件機制,以及一個簡單高性能的視圖引擎, 這些功能是每個MVC框架必備的,又具有一定不易變性, 所以適合用擴展來實現。
InfoQ:關於Yaf框架,您下一步有什麼開發計畫?
惠新宸:我的觀點是,Yaf未來應該朝做精做專的方向發展,例如Yaf 2.0與Yaf 1.0相比,並沒有增加新功能,主要是架構重新設計和效能調優。 我不希望Yaf成為想要涵蓋一切功能的”超大全”,我只希望它能為追求高性能的開發者提供一個簡單高效及可擴展的工具,為”低碳”生活做貢獻。
另外,我想感謝喜歡Yaf的朋友們,Yaf目前在社區有很多用戶,這點是我最初發布Yaf的時候沒有想到的,一些很熱心的朋友為Yaf提供Windows下的發布,建立了使用者交流論壇、QQ群等,這些事情我有心但沒有精力做,他們的熱情是驅使我不斷完善Yaf的動力,非常感謝這些朋友。
InfoQ:能否對Zend、Yii、CakePHP這幾個PHP框架進行簡單的優劣勢分析?
惠新宸:這幾個框架都是很優秀的PHP框架,我在以前的專案中使用過Zend和Yii, 但可惜沒有機會用CakePHP, 說說我個人的理解吧。
Zend Framework是Zend公司開發的PHP開發框架,它設計精良,功能強大,有很廣的使用者,文檔齊全,社群也比較活躍。它的程式碼寫得規範工整,非常適合PHP開發者去閱讀和學習。缺點就是稍顯臃腫,性能偏低。
我對Yii印象最深刻的是AR,在實際開發中非常方便, 並且提供了系統的自動生成工具,我個人非常喜歡Yii。 然而AR的缺點也很明顯,資源佔用很大,不適合大數據量應用。
InfoQ:請推薦三個您開發的PHP擴展,為什麼您推薦這三個擴展?
惠新宸:我寫擴展開源出來的就4個,按照時間順序是Yaf,Lua,Taint,Couchbase。它們各自要解決的問題不同, 我簡單介紹一下這幾個擴充。
Yaf前面介紹過了,這裡不再重複。
Lua是在PHP擴充中對Lua引擎的封裝,支援在PHP中執行Lua腳本,並能與Lua腳本交換資料。 Taint是一個XSS,Sql&Shell injection偵測擴展,它主要是為了彌補一些靜態偵測腳本不能覆蓋到的點。
Couchbase是一個對Couchbase Client的封裝,Couchbase Server是一個高效能高即時性的K-V資料庫。順便提一下,我們新浪微博應用架構團隊,還在為新浪微博開發一些擴展,這些擴展是為微博解決一些實際問題, 等這些擴展可用性和穩定性得到驗證之後,我們會開源出來回饋社區的。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
