[精選]laravel VS thinkphp, 如何決擇?

Weiwen 發表於 2022-06-15
Laravel PHP

ThinkPHP vs Laravel 當下國內最流行的兩款PHP框架,孰好孰壞,爭議最多!做為初學者,也很糾結,到底學哪個好呢?

本文PHP中文網來認真盤點一下,不吹不黑,更不便偏頗哪一方。

首先大致介紹下這兩個最受歡迎的PHP框架

ThinkPHP

圖片

ThinkPHP由國人開發,是一個免費開源、物件導向的輕量級PHP開發框架。誕生於2006年初,國內使用最多。

熱門版本

ThinkPHP5.x:2015年推出,MVC模式,支援PHP>=5.6

ThinkPHP6.x:2019年全新推出,開始使用Composer安裝及更新,支援PHP>=7.1

Laravel

圖片

Laravel由大漂亮國Taylor Otwell開發,是一個永久免費、開源的重量級PHP開發框架,誕生於2011年,全球使用最多,號稱最具設計哲學和藝術的PHP框架。

熱門版本:

Laravel 8.x:2020年9月8日釋出,PHP 版本>= 7.3

Laravel 9.x:2022年2月8號推出,僅支援PHP 8.0/8.1

到底誰更勝一籌呢?

我們先來看看網友們都是怎麼評價的,最後再發表下php中文網的看法

圖片

第一局:使用流行度(熱度)

網友評價1:

國內ThinkPHP使用的最多,而全球Laravel當之無愧NO.1。在國內一般中小企業用TP最多,基於tp做自己的框架自用,完全掌握自己的命運。

網友評價2:

框架本身就沒有對比性可言,因為每一種架構的出現就代表一種需求場景,或效能、或學習性、或可擴充套件、或上手度,如果你要說誰的優勢更大,那麼我覺得只能說在用TP的公司TP優勢大,在用laravel的公司,laravel優勢更大。因為周圍更多的人使用它,相對應你的學習成本就小。(想來你也不是以架構師的身份正在為專案做框架技術選型)

網友評價3:

laravel其實是一個非常臃腫的東西,而think是一個非常輕量級的東西.老實說,think個人比較喜歡,對於一箇中國的開發者,有什麼比全中文文件來得更舒服.

網友評價4:

去看看原始碼交易平臺吧,很多網站程式都是基於TP開發的,另外PHP開發者基本都掌握TP,很容易做原始碼的二次開發。

網友評價5:

沒必要糾結。能力不足,卻站在上帝視角,俯瞰一切;不求甚解,卻敢大言不慚的藐視一切。此類人處處都是,什麼PHP不行,什麼框架垃圾……輾轉於各處最喜歡吐槽各種語言各種技術,很以此為樂。

可憐的是多少新手被這幫信口雌黃的傢伙帶到溝裡面去了。曾經我還是個小小鳥的時候就被一個所謂老師的sb洗腦了,大意是TP是搞小專案的,laravel是做大專案的,等等…

當時我還真信了,如今想來還是太年輕。要明白當一個人在接受一個新的事物時最初的一些觀點影響甚大,而且因為不甚瞭解你都無法判斷對錯,這種東西害人也在無形。

因此在我看來,類似於這樣的問題,完全可以自己實踐,看文件寫專案,搞他三四個專案就不言而喻了,再也不會被知識騙子們騙了,而且隨著時間的推移越來理解的越深刻。那腳踏實地得來的經驗確實很爽。離開場景說語言說框架,啥也不是。一切語言的出現都是為了解決實際問題,包容並深入學習研究才是正道。不然啥也不是。

第二局:生態

網友評價1:

生態上,Laravel比thinkPHP更加強大,這是毋庸置疑的,尤其在6.X到7.X上,laravel的框架趨於成熟,基本也已經定型,大多是在效能上做了一定優化和改進,做的更多的工作是在生態上的強化。

網友評價2:

thinkphp比較輕量,國內使用者眾多,比較容易入手,完善的中文文件和大量的中文使用者這一條就很有吸引力了。

第三局:設計

網友評價1:

從最新版本來看,兩者也是越來越靠近,用到的技術和設計理念更加相近了。技術和設計理念上比較,不免陷入“誰抄誰”的誤區。

相比之下,thinkPHP還有一段路要走,個人覺得tp現在的目標還是在錘鍊框架,有的噴tp的人,那v3到v5到v6版本的變化來證明tp在抄襲laravel,我覺得是有點過了,作為開源框架,技術本身就是公開的,開源的目的也是為了服務更多的現實應用,對於新的技術,新的設計理念,我想任何一個想發展的框架都會努力去優化,給框架賦能以適應於新的應用場景。

網友評價2:

產生環境上講,thinkphp框架是國內產物,從設計思維和習慣上來講必然會更優先考慮國人,就算不考慮,國人也會更好理解,一個顯著的特點是,你看thinkphp的文件時總會比laravel更好理解。獲取tp從一開始設計的時候是有些粗糙,有些low,但是通過這幾個版本的演化,我們能明顯看到他的進步,不妨多點包容的時間,看它將來的發展方向。

網友評價3:

很明顯laravel在UI方面的雕琢甩出thinkPHP幾條街,從各自的官網,從各自框架的實際應用中就可以看得出,不容辯論

第四局:團隊

網友評價1:

Laravel的團隊明顯比ThinkPHP的團隊強大,因此他有更加強大的技術物力等支援其更新和商業化程式。

第五局:效能

網友評價1:

最近把laravel和ThinkPHP 5 都用了一下,是因為公司有個業務線併發需求很大,但是又不願意付出太高的成本(這裡是指伺服器這塊,公司不願意買貴的伺服器),剛開始用的Laravel,高併發效率真的很差,又不願意提升伺服器效能,沒辦法,又用ThinkPHP寫了一套。結論就是 同樣配置的伺服器上 ThinkPHP 5的併發效能比Laravel高出很多,雖然沒有仔細對比,之前看有人對比過,ThinkPHP是Laravel的4-5倍吧。具體哪個好我覺得跟專案、業務線有很大的關係。

網友評價2:

針對目前Laravel的槽點就是laravel載入的檔案太多。導致每次執行請求的速度回變慢。我想說目前PHP 7.4 即將要加入的一個更新就是預載入功能。這個功能就是PHP的框架部分可以跟著PHP的FastCGI程式啟動,這樣就省去了每次需要載入一堆檔案導致效能低下的缺點了。

網友評價3:

tp輕量級,就是升版本會向下不相容,laravel相對重量級,很多功能都做好了,不用重複造輪子,版本迭代也挺快。

網友評價4:

區別還是蠻大的,laravel底層原始碼用了更多的設計模式,thinkphp簡單的多,laravel的生命週期更為複雜,thinkphp載入了幾個檔案,就分發了請求到控制器,明顯簡單的多

第六局:安全性

網友評價1:

安全性TP一直在更新,但是更新就說明一個問題,說明發現了很重大的漏洞才需要更新,也不知道是不是黑客就喜歡搞國產,不過相對來說安全性還是很高的。

第五局:學習成本

網友評價1:

就目前來看,laravel比起thinkPHP確實有很大的優勢。單純的應用來講優選laravel無可厚非,但是現實總是殘酷的,實際上手的時候laravel對於新手來講,總是高高在上的。

相比之下laravel的框架確實大,大的結果就是有大量的概念需要你掌握,大量的api需要實踐中理解使用,而且看文當時你會很抓狂,儘管國內有中文社群,但當你真正遇到難理解的概念是,你看文件總是不說人話,開啟官網又是全英文,對於英語功底差的和新手開發者來說就是厄運。

基於此,建議新手開發者先學習thinkPHP,概念相比較少,中文生態交流易於理解,等到有一定開發經驗的時候再去啃laravel相比更好吧。一個很有意思的現象是:掌握了laravel就不想回到thinkPHP了。

網友評價2:

事實上tp5開始已經吸入很多新東西,擁護者便無比讚揚,就像他那句“十年磨一劍”一樣,看慣了飽受病垢且使用者群龐大的3.0,5.0著實讓人情懷感倍增,毫不猶豫的用起了它;而反對者認為新功能無非是laravel玩剩下的,你來的晚自然就是抄作業。

當我還是個小小白的時候,同時學習了tinkphp和laravel 兩個框架,聽別人嘴裡說著個框架low那個高大尚、這個適用小專案那個適用大專案,等等…

至於設計思路到現在也沒有半點印象,大概源於那時的小小白不具備聽懂這類東西的意識吧,幾番折騰,發現tp是個好東西,因為laravel根本沒感覺,什麼服務容器,什麼事件佇列,等等一流的,你不認識我,我不認識你,就這樣看著—發呆。

全身上下只有幼兒園小班的英語水平的我看見laravel那些類名、那些註釋、那些不說人話的文件,心裡只有一個感覺:一入laravel似海深,無限悲涼無限傷。便決然踏上了tp路。

大佬們怎麼看?

ThinkPHP開發者:

不是TP要借鑑laravel,是主流的開發思想趨同而已 。TP要和國際接軌就必須符合主流開發思想和成為一個現代化開發框架,好的設計總是殊途同歸。

5.0版本設計的時候TP就有借鑑laravel 大家都只是看到類似的用法 而看不到底層實現的區別。

TP完全沒有必要也不會去複製一個laravel出來,走的完全是基於自己的使用者生態考慮的路線,而且6.0開始TP走的是自己的模式。

很多看起來糟糕的設計 對於普通開發者來說 恰恰是一個貼合實際的設計,例如composer 這個曾經攔截了多少的PHP初學者,框架要基於composer很容易,但TP5系列版本一直是相容composer設計而不是完全基於composer設計(事實上相容難度比基於composer更大)。

正是出於這些原因,好的產品要考慮自己的使用者群。TP6在TP5兩大版本培養使用者的基礎上才做出了完全基於composer的選擇。但打造一個國內的生態是不容易的,更多需要開發者的理解和貢獻。所以不需要去比較,根據自己的情況來選擇適合自己的框架,包括技術團隊、成本等考慮。

新手更不要被某些言論左右,laravel確實優秀,但thinkphp也未必不好,沒有完美的框架,嘗試下自然就明白是否是適合自己的。

事實上,TP如今的生態已經越來越好了,使用者群依然一直在增長,百度指數也可以看得出來兩者的區別並不大。

PHP中文網:

(一) ThinkPHP

1. 採用mvc思想開發,影響範圍僅限國內,免費開源,中文資料非常豐富(這句好像是廢話),是Web開發新手的最佳選擇。

2. 從經典的ThinkPHP5開始,號稱為API開發而設計的高效能框架。配置簡單, 上手極快, 程式設計風格也特別討好國內開發者,所以,一經面世,風靡全國,成為創業團隊,外包公司,個人工作室的最愛!

3. 缺點也很明顯,就是生態沒有國際大牌框架完善,在composer上搜尋一下ThinkPHP的第三方開發包就知道了,但那又如何呢?對國內影響極小。
原文轉載

本作品採用《CC 協議》,轉載必須註明作者和本文連結