ThinkPHP vs Laravel 當下國內最流行的兩款PHP框架,孰好孰壞,爭議最多!做為初學者,也很糾結,到底學哪個好呢?
本文PHP中文網來認真盤點一下,不吹不黑,更不方便偏頗哪一方。
首先大致介紹下這兩個最受歡迎的PHP框架
ThinkPHP由國人開發,是一個免費開源、物件導向的輕量級PHP開發框架。誕生於2006年初,國內使用最多,php中文網20期PHP直播班教學計畫就是用的ThinkPHP6,非常適合初學者!
熱門版本
ThinkPHP5.x:2015年推出,MVC模式,支援PHP>=5.6
ThinkPHP6.x:2019年全新推出,開始使用Composer安裝及更新,支援PHP>=7.1
Laravel由大漂亮國Taylor Otwell開發,是一個永久免費、開源的重量級PHP開發框架,誕生於2011年,全球使用最多,號稱最具設計哲學和藝術的PHP框架。詳見另外一篇文章:Laravel 為什麼會成為最優雅的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的第三方開發包就知道了,但那又如何呢?對國內影響極小。
課程推薦:
第20期PHP線上直播班,開始報名了!
報名位址:https://www.php.cn/k.html
本期採用 TP6 Vue3 API Element Plus重點打造一套完整的知識付費( 分銷系統)多商戶電商系統
#預訂活動(截止6.8號):
1. 預定金200抵800活動(可退)
2. 報名即贈送本期價值萬元的完整電商( 分銷)系統原始碼(可商用無版權風險)
3. 全款報名,另外贈送3個月VIP會員PHP路徑課,用於提前學習
課程報名諮詢↓↓↓
QQ/微信:27220243(鐘老師)、 微信:phpcn01 (月月老師)
(辨識二維碼諮詢)
#################################################### (二)Laravel框架#########1. ThinkPHP的缺點,幾乎全是Laravel的優點,反過來,也是成立的。 ######2. Laravel,號稱為 WEB 藝術家創造的 PHP 框架,同時也是目前AP開發最好的高階php框架。 ######3. PHP主要應用場景是Web開發,Laravel框架做到極致。 ######4. 更新頻繁, 靠社區推動,全球不計其數的大神,不斷的為它"添磚加瓦",生態豐富, composer上的功能包,只有你想不到,沒有你找不到。 ###
5. 對於新人來說,上手難度比ThinkPHP要大,但是一旦入門了,彷彿打開了一片新天地。
6. 在國內一些社區推動下,這些年laravel中文資料越來越多,不少web計畫已在用laravel重構了。
課程推薦:
php中文網路新上線的《Laravel 9 學習正當時—保母級教程,想學不會都難! 》帶你領略專為Web工匠打造的PHP框架最新版本 Laravel 9,讓你的程式碼更像藝術家的作品!
本課程將從零開始,帶你學會使用世界上最受歡迎的PHP框架開發任何項目,並為你節省大量開發和維護時間,提升開發效率!
開通網址:https://www.php.cn/course/1421.html
(辨識二維碼開啟課程)