7个使用和不使用ThinkPHP的理由

黄冠能 发布于 2015/11/17 22:59
阅读 6K+
收藏 3

花了几个星期时间想完成下面两篇文章(7个使用ThinkPHP的理由7个不使用ThinkPHP的理由),但是绞尽脑汁还是没能完成,下周打算给公司员工做ThinkPHP的培训,于是上来问一下大家有没有什么好的观点。

使用的理由:

1. 最基本的PHP框架

如果你从来没有使用过PHP框架,那么你至少应该选择一个PHP框架,这比完全自己写代码要好得多,至少有很多常见的问题框架的文档都会提及。而PHP框架中,ThinkPHP会是理想和基础的选择之一。我本人曾尝试过国外多用的Laravel,作为初学者,并没有发现Laravel比ThinkPHP有什么优越之处,反而缺点多多。

2. 中国人做的开源框架

符合国内大部分PHP开发者使用习惯,中文文档及社区完善。很多人懂,意味着容易招人。容易上手。而其它所有PHP框架基本上都是国外的,需要英文阅读能力过关,偶尔还要翻墙。

3. 完善的文档

ThinkPHP有很完善的技术文档以及教程,不像国外的PHP框架写得很简单(简洁)。验证码、微信开发等主题也有涵盖。视图的语法也描述得很清晰(国外的PHP框架一般默认程序员已经知道视图的各种特殊语法)。可以认为,国外的PHP框架大多对高手友好,ThinkPHP对刚入门的程序员友好。

4. 简洁的路由和参数

如果使用默认的路由方式,不需要定义哪个URL由哪个函数处理,开发者从URL就能很容易地找到处理的代码以及传入的参数,这让代码结构变得很规范、美观。比如说,URL为http://localhost/Home/Index/course,那么Controller就在Application/Home/Controller/IndexController::course(),View就在Applicaiton/Home/View/Index/course.html。如果页面很简单,没有动态内容,那么我们连Controller都可以不写。

5. 支持验证码、微信、图片处理、IP定位等功能

支持这些常用的功能,让人感觉很方便。


6、7……求补充

不使用的理由:

1. 没有多环境的配置机制

开发网站通常需要在本地配置、然后放到测试服务器、然后放到生产环境。那么我们需要有3套的配置文件(数据库的账号密码)。但是ThinkPHP不像Laravel等框架可以把多个环境的配置区分开来,并且ThinkPHP的应用配置文件放在Application/Common/Conf/config.php,也就是说,如果我们想用rsync命令把所有代码同步到服务器,会把服务器的配置覆盖。这一点很不方便。

2. 没有内置发送邮件的支持

需要自己安装扩展,缺乏这个基本功能不太方便。

3. 没有内置用户管理、权限控制的支持

这是每个网站都需要有的功能,连这个也不支持很不方便。对于新手来说,可能还不懂得怎样构建权限控制的模型,让系统很容易出安全漏洞。在网上也很难找到一个质量高的完整例子。

4. 国内的开源PHP框架

这个其实不是什么缺点,但是会被部分人鄙视。这种偏见有其合理性的一面,因为ThinkPHP框架本身以及社区里使用ThinkPHP程序员的平均水平要低于国外的PHP框架,长期混在这一社区水平难有提高。

5. 页面跳转机制设计不太好

ThinkPHP在页面处理有一个返回成功或失败消息的机制,显示该消息几秒后跳转到新页面。这样做有两个缺点:1. 增加了一次额外的页面请求。2. 用户可能还没有看清楚消息就跳转了。同时,这种跳转的机制和jQuery Mobile的Ajax加载页面模式不兼容。像Drupal里把需要返回的结果信息显示在下一个页面里是更优的设计。

6. 搜索答案效率低下

国内的事问百度,国外的事问Google。用Google问IT问题的人都知道Stack Overflow这个网站,都知道找到这个网站的链接就基本上找到答案了。但是ThinkPHP是国内的技术,要问百度,在百度找答案是很累的。国内的文化是很乐意共享别人的东西(例如盗版电影、软件链接),但不乐意共享自己原创的东西(论坛下载资源要先注册一下,只共享不能运行的代码片段)。

7……求补充
加载中
1
mark35
mark35
文档不咋滴,看了一两天还是一头雾水。CI的文档简洁明了,看了半天就能上手
梦想岛
梦想岛
要说简单,我也认同ci。2.2版也就2mb。就是新手要看一下如何配置mysql,session。要学会使用load
1
流年
流年

只想说三点:

ThinkPHP的ORM和模板引擎还是有亮点的;

性能方面我们还是不错的(除了微框架和PHP扩展外);

关于搜索答案低下的问题 其实80%的问题手册都能找到答案,10%在官网讨论区也能找到答案,剩下的就要自己去QQ群或者自己研究了;

无限静默
无限静默
同意上面的意见。我也用了半年了,感觉TP这个框架确实不错。MVC的架构很容易让Java程序员上手。
0
eechen
eechen
性能是Laravel的硬伤,而且PHP本就不是一门追求“优雅”的语言,所以Laravel被吹得热,但拿来做生产应用的不会比ThinkPHP多。
0
Evila
Evila

 没有多环境的配置机制 这个是可以的,你可以仔细看一下手册,例如PC上用一个配置、iMac上用一个配置文件,服务器上又是一套配置文件。给个关键词:APP_STATUS 去搜索看看吧 

0
洞悉
洞悉

虽然我没有用过 但是对thinkphp的感觉还是非常好的

0
百世经纶之傲笑红尘
百世经纶之傲笑红尘

国内的文化是很乐意共享别人的东西(例如盗版电影、软件链接),但不乐意共享自己原创的东西(论坛下载资源要先注册一下,只共享不能运行的代码片段)。

CSDN上最坑,就是这种模式

0
我吃烤地瓜
我吃烤地瓜
有句话叫教会徒弟饿死师傅。我老大说我把你都教会了 我吃啥?
0
hellogirl
hellogirl

不使用的理由不够充分,ThinkPHP用起来还算方便;
CI、Yii等没发现有多好用

0
游走的鱼
使用的理由不够充分,ThinkPHP用起来不算方便
0
黄冠能
黄冠能

引用来自“我吃烤地瓜”的评论

有句话叫教会徒弟饿死师傅。我老大说我把你都教会了 我吃啥?

信息不对称的年代是这样的。

但互联网和自由软件的出现已经改变了这一局面。把目光放远一点,不要只和身边认识的人比较,和顶尖高手相比,自己藏起来的秘笈都是垃圾。

返回顶部
顶部