我对ThinkPHP5和Laravel5的一些看法

原创
2016/12/21 16:10
阅读数 1.9W

本来这个是想发在新版发布贴的评论里面的,发现开源中国的评论有字数限制,所以写在这里了。

技术社区里面经常有人提到ThinkPHP5和Laravel5的优缺点,或者抄袭之类的,其实每个框架都各有优缺点 没有完美,所以优缺点就看开发者的角度和认识(因为你熟悉了一个框架 用起来顺手本身就是一个优点),对于有些用户(尤其是新人)觉得文档好、上手容易是优点,有些用户觉得性能好是优点,又有些用户可能觉得方便扩展才是优点。但往往一个缺点会掩盖所有的优点,这就是很多用户抱怨的原因。喜欢一个框架一定有喜欢的地方,讨厌一个框架也总能找出理由。我觉得开源中国的用户相比国内某些社区来说不那么逼乎,言论都相对客观,所以就特别写了下面一些内容。

以往的版本我们就不说了(已经过了维护生命期了 大家也没有必要揪着历史说事,事物都在发展),毕竟和LV相提并论的最多也是TP5。

我们在开发TP5的时候 一方面吸收了以往版本的用户反馈和抱怨,一方面也吸收了国外主流框架思想的洗礼(例如Laravel,很多用户说TP5参考了yii2 ZF2 其实并没有 如果你看到了只能说明主流的现代思想是殊途同归的),并秉承了TP一贯的大道至简的开发思想,经过了长达十月的开发测试才诞生了第一个TP5的正式版本,并且已经迭代到了V5.0.4版本了。应该来说表面上沿用了Larave的很多方法和思想,其实本质上的实现差异很大或者完全不同。 沿用(或者说是在有些人眼中的抄袭也好)的目的主要包括: 1 我们找不到更适合的英文单词(但LV很多单词是用的很生僻,TP5主要的单词都是四级之内词汇) 2 我们在为吸收转化LV开发用户做铺垫^_^

因此在上手难度和性能上相比较laravel是占优势的,加上从正式版发布后的文档教程系列一直在完善(主要是迎合国内的新手),因为从TP3.2版本到5.0版本跨度非常之大,我们也认识到存在不可避免的用户流失(相比较TP3.2引入了很多的主流现代开发思想,需要补课很多 包括composer、面向对象、依赖注入等),但我们也相信,我们的新版本也会俘获另外一批懂我们的用户,从而转向TP5(事实上确实如此)。

TP5并非只是单纯的借鉴,一样有大量的创新,尤其在路由、日志、控制器和模型的一些细节方面,这些只有真正去用过才能体会。TP5的底层架构和LV是完全不同的设计,但都遵循一些规范(包括PSR-2,PSR-4,RESTFul),并都在往主流的设计思想靠拢。

但作为一个新诞生的孩子路还有很长,生态之类的还不够完善(LV也不是靠官方团队做大的 有大量的人在为生态贡献),所以从我们的角度来看,TP5和LV5 孰好孰坏,没有绝对,从长远来看,TP5在国内替代LV5的可能性越来越大,至少在国内我们的优势非常明显(可以参考百度指数和谷歌趋势数据),包括性能、文档以及社区(如果是盲目崇拜LV的我也无话可说,毕竟国内也有盲目崇拜TP的^_^)。

因为LV的架构和内部实现相当的复杂,相比较而言TP的代码和文档 都非常容易阅读和理解,那么扩展起来自然就会轻松很多,LV主打的就是优雅、现代编程思想以及优秀的扩展生态。但TP5一样优雅,并且功能不会缺失太多,至于扩展生态方面就需要靠社区和用户的参与和贡献了。在国内PHP开源框架这块,我们风风雨雨走了十多年,我们了解我们的用户的想法,同时也在学习吸收国际的现代开发思想。

总结来说,TP5更简单实用,文档丰富,LV更严谨,生态成熟。性能在这个时代其实已经不是最关键的了,所以我并不想强调性能方面的,国内的企业更关注的是开发周期和开发成本。

展开阅读全文
打赏
31
10 收藏
分享
加载中
一如既往支持tp;只要是做网站,首选你
2020/07/22 16:30
回复
举报
php下最易上手框架
2018/12/31 19:42
回复
举报
对, 我就是tp死忠粉.无脑吹那种
2018/11/13 11:12
回复
举报
希望tp越来越完善,第一个接触的框架,感恩
2018/08/24 14:32
回复
举报
tp是最强大的,文档也是写的最完美的。感谢流年老大
2018/08/03 14:41
回复
举报
TP 5.0以后 也讲究严谨了。
2018/06/19 11:57
回复
举报
真的 这个年代性能已经不是什么问题了,项目火起来之后,几乎都是集群的时代了
2018/02/07 13:25
回复
举报
为TP5生态做出贡献
2018/01/12 15:37
回复
举报
😨看一圈的框架最终感觉还是tp5好用尤其是 连接数据库的Db类
2017/07/11 16:22
回复
举报
ThinkPHP 会越来越好.
2017/06/27 22:31
回复
举报
更多评论
打赏
18 评论
10 收藏
31
分享
返回顶部
顶部