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

php教程9年前 (2016-02-25)13910

花了几个星期时间想完成下面两篇文章(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……求补充


“7个使用和不使用ThinkPHP的理由” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。