Yii与ThinkPHP的抉择
在之前的一篇文章《浅谈我对开发效率与执行性能的抉择》中,我曾提到过我要学习YII框架
这几个月间,虽然偶(chen)尔(mi)玩玩游戏,但我也没有停下学习的脚步 放慢而已
不得不说Yii是个很强大很现代很优雅的框架,比辣鸡Codeigniter高到不知哪里去
但在我实际两个月的学习当中,我最终还是放弃了它,转向了ThinkPHP
很多人都无法理解我的选择,于是我决定写篇文章总结分析一下我为什么选择了ThinkPHP
或许也可以给那些和我一样纠结的朋友们一些帮助
本文仅针对我自身实际情况展开讨论
包括但不限于:技术烂、英文差、精力和时间仅够学习一款框架
1.文档
Yii的权威指南翻译不完全,页面偶有缺失。认真看过的人都知道:
- 经常一页文档滚几十次屏都没到底
- 而且文档没有子目录
- 小标题与正文没有明显区别
- 没有搜索功能
- 等等……
这就导致你在翻找时很难找到你需要的资源,单页文档过长,观感也很差
更致命的问题在于文档没有搜索功能,你得先猜测你要找的东西属于哪个分类,然后再到分类里去慢慢翻找
好不容易找到了吧,它还可能是英文的……
至于它的类参考手册就更别说了,类似字典般,几乎是纯英文的……
我们再来看看ThinkPHP的完全开发手册
美观自然,顿时感觉世界都清新了
基本上刚才吐槽Yii文档的不足之处,ThinkPHP都做得不错
示例与讲解相辅相成,对新手太友好了
要说不足之处的话,一旦熟悉了TP以后再去翻看文档找东西时,就会觉得TP的文档太罗嗦了。TP若是能出个像YII那样的类参考手册的话,想必更适合老鸟
2.注释
框架咱不仅要学着用,还得学着写,多阅读框架源码能学到很多东西
例如不知道这个函数参数是啥又懒得翻文档、觉得很神奇想知道是如何实现等等,都需要阅读源码
那么在这个过程中,注释就起到了至关重要的作用
Yii的注释嘛……英文的……别说了让我去哭会儿……
TP的注释就舒服多了,全中文,也很详细。变相实现了上述所说的类参考手册
但是不如Yii的类参考手册那样详细,因此如果可以的话,还是希望TP能专门出一个,汇总一下,找起来也会比较方便
(不过考虑到TP母公司作为一个商业公司,开源&维护TP已经很不容易,我就不抱希望了……)
3.资源、社区
这其中包括技术文章、问答、论坛、国内常用服务的封装类等等,毫无疑问在国内TP胜过Yii几条街
这在学习、提高的过程中是至关重要的。虽然不是说没有就不行,但能帮助你少踩很多坑
并且由于特殊的国情 GFW,往往很多开发中需要使用的第三方服务都只能选择国内的,而它们的文档又往往全是坑(特指但不限于微信)。这时候,要是有中文文档、中文注释、针对框架开发的类库可以直接调用就好了……
在这个场景下,TP也是领先Yii的
4.就业
Codeigniter并不流行,它不适合中大型项目的开发
现在公司的项目就是用它开发的,做大了之后简直想死……
以我目前只能专心学习一个框架的条件来看,不能是光为了学习、提升自己,还得考虑就业
我翻了翻各大主流招聘网站,以我目前的水平&有能力争取到的薪酬范围来看,几乎半数工作都要求熟悉ThinkPHP,还有几乎半数要求熟悉至少一款主流PHP框架,剩余极少数才会单独要求Yii、Codeigniter、laravel之类
总结
以我目前的情况而言,TP无疑更加适合我 菜鸟
当然我也不是因此而否定Yii
等我熟悉了TP、找到了稳定的新工作之后,依然会用业余时间提升英语水平,再去学习Yii、Laravel之类国外强大优雅的框架
至于时间嘛,就暂定为6个月 十年 之后好了
六个月内,熟悉Tp框架,找到新工作,并转向Yii或Laravel之流
祝福我吧!
Tp框架也就上手简单,开发迅速了,TP5 手册有点坑(因为完整的手册收费),很多东西写的让人摸不着头脑,设计几乎照搬laravel,ror,TP3 bug多,TP5比较TP3好很多,但还是有点bug,上次因为链接sqlsever一直出错,结果还是因为TP5的源码有问题
你的网站评论有些问题. 检查一下.
是的,有。等我学完Laravel+Vue重写一个博客系统
不知道现在一年多过去了,博主学的如何啦?
做了好多个项目了,达到能用的水平了。现在在学Laravel+Vue了
学习了,国内框架文档就时好
在学Yii,这个框架给人一种很老练,很成熟的感觉,只是文档有些坑爹了,经常得翻看类参考(字典),而且还不明觉厉得加几个群问问大神这玩意儿到底干嘛的,TP就好太多了,文档一找就到,而且我看TP5很像Laravel,也引入了Composer,感觉很不错,越来越好了。可是现在公司里用的是Yii,只能一点点学这个东西了。
没研究过TP,但把以TP为框架的程序的源码和以Laravel为框架的程序的源码放在一起比较...发现Laravel的还是更为清晰易懂一点。不过Laravel的性能绝对是硬伤......简单的页面尤其在硬盘是钻石盘的时候十几秒愣是没打开(本地环境)
卧槽神壕来了,先膜拜一个Laravel毕竟主打优雅牌。只不过我英文硬伤暂时就不去碰了
Laravel真是优雅的一b,学到依赖注入和服务提供者了
学习中