PHP開源項目一下三件事解析請求、三個框架的能力
2021-08-26
本文著眼于讀者的需求,不斷更新
首先建議學(xué)習(xí)一個基于PHP的web框架
建議先學(xué)習(xí)幾個框架,Yii2、,
PHP 是為 Web 應(yīng)用程序而生的。幾乎所有知名的 PHP 項目都是 Web 應(yīng)用程序。任何 Web 應(yīng)用程序或多或少都依賴于一個 Web 框架,無論是項目本身構(gòu)建的輪子,還是基于其他框架的項目。
所以,學(xué)習(xí)PHP開源項目,最重要的就是學(xué)習(xí)PHP框架。
簡單來說,PHP Web 框架的一個必要組件會做三件事:
解析請求,獲取輸入定位執(zhí)行器,執(zhí)行響應(yīng)后將輸入發(fā)送給指定的執(zhí)行器執(zhí)行輸出,獲得輸出
以上三點其實都和MVC有關(guān)。對于web框架,除了MVC和View之外,沒有一個MVC是框架自帶的,可以用其他獨立的開源組件代替。
為什么要同時推薦 Yii2、 和三個框架?因為這三個框架各有特點,相輔相成,共同學(xué)習(xí)后,對理解其他PHP開源Web項目會有很大幫助。吸取了各個框架的精華后,使用任何框架的能力都可以得到很大的提升。給大家解釋一下。
先說說 Yii2
Yii2 的優(yōu)點是簡單易懂。因為的代碼,使用了很多中間件和事件驅(qū)動的概念,你會發(fā)現(xiàn)從入口.php中很難知道如何調(diào)用某個特定的,因為它是發(fā)現(xiàn)并調(diào)用了Web框架的核心功能,如果這很難理解,就很難真正掌握框架本身,而Yii2的優(yōu)勢就體現(xiàn)在這一點上。
理解Yii2的執(zhí)行過程很簡單。從.php進(jìn)入后,首先會看到讀取的配置文件,通過配置文件進(jìn)行初始化,調(diào)用run方法。在run方法中,可以清晰的看到采集和處理的過程。在處理過程中,先分析獲取,再根據(jù)發(fā)現(xiàn),執(zhí)行過程也很清晰。
Yii2 的另一個特點是類繼承的廣泛使用。首先定義了\yii\base\類,定義了構(gòu)造函數(shù)和魔術(shù)方法等。在\yii\base\的基礎(chǔ)上擴展為\yii\base\類,添加事件和特性來擴展類的能力。在\yii\base\擴展為\yii\base\類的基礎(chǔ)上,增加了屬性校驗功能,用于接收和校驗外部輸入?;赲yii\base\擴展為\yii\db\,用于添加數(shù)據(jù)持久化和相關(guān)數(shù)據(jù)獲取功能。
這種基于漸進(jìn)式集成的擴展,可以清晰地定義每一層的功能,方便用戶理解,并且允許用戶選擇性地擴展自己的類php開發(fā)框架流行度排名,有點類似于典型的java應(yīng)用。但是,這也有明顯的缺點。因為基于 Yii2 的開發(fā)或多或少需要繼承 \yii\base\ 類,所以這些開發(fā)的輸出,包括擴展、模塊,很難與其他框架兼容。正因如此,Yii2社區(qū)中創(chuàng)建的東西的影響力無法傳播到其他框架的用戶,導(dǎo)致其知名度低,基礎(chǔ)高。如果大家有興趣,我會在后面介紹如何在Yii2中借用和寫出更好的代碼。
Yii2 被稱為開箱即用的 Web,一站式 Web 框架,它是有道理的。一方面,框架本身就包含了構(gòu)建網(wǎng)站所需的各種功能,無需到處選擇合適的組件來創(chuàng)建自己的應(yīng)用程序。另一方面,一旦選擇了這個框架,它就取決于整個框架。僅使用框架的一小部分或?qū)F(xiàn)有工作遷移到其他框架是困難的。
Yii2 與 , 的意識形態(tài)對比
我們在生活中會遇到很多人,聽過很多意見,也有過很多討論。漸漸地,我發(fā)現(xiàn)人與人之間的區(qū)別,其實就在于價值觀、世界觀和人生觀。
一個人之所以會這樣,是因為他先有一些經(jīng)驗,根據(jù)這些經(jīng)驗總結(jié)出一些規(guī)律,并根據(jù)規(guī)律提出一些假設(shè),然后他會不斷驗證和確認(rèn)提出的假設(shè)。這些假設(shè)雖然不正確,但決定了大多數(shù)人的行為方式。同一個群體的人互相影響,假設(shè)變成意識形態(tài)。
這一段為什么這樣開頭,看完下面的對比你就明白了。
雖然我還沒有介紹和,但我想用一些框架和社交系統(tǒng)來做一個類比,幫助你有個基本的了解。
Yii2 社區(qū)就像一個中心化的社會。大哥會為您處理所有大事。社區(qū)的工作以老大哥為中心。大哥會負(fù)責(zé)版本迭代的兼容性。在工作中,社區(qū)也會做他們需要的擴展,但是你專門為大哥做的擴展在其他社區(qū)很難輕易使用,也很難擴大他們的影響力。當(dāng)然,事情不是一成不變的。核心團隊和社區(qū)也意識到了這個問題。 Yii3 正在嘗試將框架拆分成獨立的部分,遵循 PSR 等一定的標(biāo)準(zhǔn),將框架轉(zhuǎn)變?yōu)橐粋€可以獨立使用的基于組件的框架。
而且他就像一個去中心化的社會,你可以把我當(dāng)成一個框架,但是這個框架的概念其實是由幾個可以單獨使用的小組件組合而成的,其中一個把其他的組件組織起來就成了一個框架。雖然不需要使用整個框架,但可以使用框架的一部分。小部件可能功能不全,您可能不喜歡里面的小部件php開發(fā)框架流行度排名,但您可以找到您喜歡的小部件的替代品。至于你找到的那個好不好,你自己去琢磨。至于我的版本迭代的兼容性,我不保證。
那為什么這些框架會有這么大的區(qū)別呢?因為這些框架是由不同背景的人制作的,所以不同背景的人有不同的意識形態(tài)。
Yii 的創(chuàng)始人薛是中國人。目前,Yii 有一名全職開發(fā)人員,他是俄羅斯人。我們知道,在全球所有活躍的開發(fā)者社區(qū)中,中國和俄羅斯社區(qū)最受歡迎。不難理解,Yii2 也體現(xiàn)了集體主義的意識形態(tài)。
創(chuàng)作者
是土生土長的美國阿肯色州人,現(xiàn)任主力后衛(wèi)是比利時人。相對而言,這是一個自由和去中心化最為重要的國家,也不難理解,它處處體現(xiàn)著去中心化的思想。
插頁式廣告:開源項目的可持續(xù)發(fā)展僅靠社區(qū)是很難的,特別是考慮到Y(jié)ii3的進(jìn)展并不如預(yù)期,所以我們發(fā)起募款支持某人,以確保Yii的發(fā)展全面-時間。也希望能號召像我們這樣的Yii用戶受益人捐款,支持Yii社區(qū)越來越好。
那就說說吧
//待辦事項
最后介紹
//待辦事項
幾個優(yōu)秀的PHP開源應(yīng)用項目
漸進(jìn)式和深度學(xué)習(xí)可以產(chǎn)生真正的見解,否則知識將浮出水面。說完框架,我覺得最好的辦法就是趁熱打鐵,學(xué)習(xí)基于這些框架的優(yōu)秀開源項目。我選擇了三個我熟悉的項目給大家做一個基本的講解,希望能幫助大家獲得更多的見解。
基于 Yii2
//待辦事項
基于
//待辦事項
基于
//待辦事項