PHP組件

現(xiàn)代的PHP較少使用龐大的框架,而是更多的使用具有互操作性的專門組件制定解決方案。開發(fā)新PHP應(yīng)用時,我很少直接的使用Laravel或Symfony,而是思考能把哪些現(xiàn)有的PHP組件結(jié)合在一起解決我的問題。

為什么使用組件

對很多PHP程序員來說,現(xiàn)代的PHP組件是個陌生的概念。我也是在幾年前才知道。在沒有深入理解組件之前,本能驅(qū)使我使用巨型框架(列如Symfony或CodeIgniter)開發(fā)PHP應(yīng)用,我從不會考慮其他途徑。以前我會花時間研究某個框架的封閉生態(tài)系統(tǒng),使用這個框架提供的工具。如果不幸,框架沒有提供我所需的功能,我會自己開發(fā)。大型框架也很難集成自定義的庫或第三方庫,因為這些庫之間沒有使用相同的接口?,F(xiàn)在你可以放心,這樣的日子一去不復(fù)返了,我們不用再感激龐大的框架,也不用束縛在這些框架筑起的圍墻中了。

如今,開發(fā)應(yīng)用時,我們會從不斷增多的大量專用組件中選擇合適的。既然已經(jīng)有了guzzlehttp/guzzle組件,為什么還要浪費時間自己編寫處理HTTP請求和響應(yīng)庫呢?既然league/routearua/router組件很好用,為什么還要重新創(chuàng)建路由呢?你應(yīng)該明白我想要表達的意思了。其他開發(fā)者花了無數(shù)的時間創(chuàng)建、優(yōu)化和測試專門的組件,以便讓組件盡量做好一件事。如果響快速開發(fā)更好的應(yīng)用,不使用這些組件而自己重新發(fā)明輪子的話,那就太傻了(除了個人研究)

組件是什么

嚴(yán)格來說,PHP組件是一系列相關(guān)的類、接口組件是打包的代碼,用于幫你解決PHP應(yīng)用中某個具體的問題。例如,如果你的PHP應(yīng)用要收發(fā)HTTP請求,可以使用現(xiàn)成的組件;如果你的應(yīng)用要解析逗號分隔的數(shù)據(jù),可以使用現(xiàn)成的組件實現(xiàn)。我們使用組件為的是不重新實現(xiàn)已經(jīng)實現(xiàn)的功能,把更多的時間用在項目的長遠目標(biāo)上。

任何市場中的產(chǎn)品都有好壞之分,PHP組件也是如此。就像在雜貨店檢查蘋果一樣,區(qū)分PHP組件的好壞也有一些技巧。

組件特點

  • 作用單一
    PHP組件作用單一,能很好的解決一個問題。組件不是萬能的,不能雜而不精,要術(shù)業(yè)有專攻。組件專注于解決一個問題,而且使用簡單的接口封裝功能。
  • 小型
    PHP組件小巧玲瓏,只包含解決某個問題所需的最少代碼。組件中的代碼量各異。一個PHP組件可以只有一個PHP類,也可以有多個PHP類,分別放在不同的子命名空間中。PHP組件中類的數(shù)量沒有統(tǒng)一限制,根據(jù)解決問題的需要,想使用多少個就使用多少個。
  • 合作
    PHP組件之間能良好合作。畢竟組件就是為了和其他組件合作,解決更復(fù)雜的問題。PHP組件不會讓自己的代碼攪亂全局命名空間,而會把代碼放在自己的命名空間中,防止與其他組件有名稱沖突。
  • 測試良好
    PHP組件測試良好。因為體型小,因此很容易測試。如果PHP組件體型小,而且作用單一,很可能也易于測試,因為組件關(guān)注的東西少,而且依賴易于識別和模擬。最好的PHP組件本身會提供測試,而且有充足的測試覆蓋度。
  • 文檔完善
    PHP組件的文檔完善。組件應(yīng)該能讓開發(fā)者輕易安裝、理解和使用。好的文檔可以做到這一點。PHP組件應(yīng)該有個README文件,說明組件的作用,如何安裝以及如何使用。還可以為組件搭建網(wǎng)站,放上更詳細(xì)的信息。PHP組件的源碼也應(yīng)該有文檔,為組件中的類、方法和屬性添加行內(nèi)文檔快,說明參數(shù)、返回值和可能拋出的異常。

組件推薦

HTTP請求

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • Composer Repositories Composer源 Firegento - Magento模塊Comp...
    零一間閱讀 4,021評論 1 66
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,213評論 4 61
  • 十里香風(fēng)花如海嚴(yán)冬過后總是春五彩紛呈閱不盡鵬城街巷好光景 關(guān)注大衍文化
    板凳掃地僧閱讀 217評論 0 0

友情鏈接更多精彩內(nèi)容