为什么国内有不少PHP程序员不喜欢THINKPHP,甚至鄙视THINKPHP?
问题是好问题。我觉得,提问者应该拿出证据,哪些引用曾说过不喜欢thinkphp。
认识的人中,除了喜欢的,剩下的说不上喜欢,但没有出现不喜欢,更别说鄙视了。
++++++++一下是追加内容++++++++
真对某些论点 提问如下
不是教人写不规范的代码
是@空山鸟语所说的 .class.php结尾呢, 还单单只是D,M,C,U,F.还是controller,还是model,还是驼峰?我相信thinkphp的命名规范是借鉴了很多其他框架的命名方式,至少zf2还有cakephp都是有各自的命名规则的,因为框架需要根据这些命名规则去加载。那您说的规范是怎样的标准规范。是PSR-0,PSR-1,PSR-2和PSR-4。不是教人懒惰
。只是因为D,M,C,U,F呢,还是“路由是什么?”,还是“需要多写一个return”。我的观点是:a.框架肯定是抽象一些常用操作的,必定是简单和易用的。这不是框架的错,那php解释性语言,弱类型,垃圾回收,哪一样不是抽象过的,所谓的“教人懒惰”。
b."路由是什么?",相信无论是thinkphp的手册和ci的手册和cakephp的手册(我都看过)都是有的,这是那个程序员的的问题。
c."需要多写一个return",我相信thinkphp还没强大到可以不写这个"return"
专门注册账号来回答这个问题。
首先声明:
自学PHP,没有专业的java或者Linux C/C++等语言的开发经验。最早接触的框架是ZF1,然后是ZF2,Symfony,Swoole,后来工作需要用TP,然后开始了蛋疼之旅。
TP最大的优点兼缺点,是灵活(多快好省?大跃进?率性而为?),怎么方便怎么来,力求快速上手,直奔小康,一夜建成社会主义。
1、凡是涉及到框架这种基础的应用程序的设计,应该准守软件工程的规范,该接口的接口,该抽象的抽象,该继承的继承,注意基本的设计模式。这样形成一种层次结构,便于理解和维护。TP3.2的核心包,完全就是类文件堆起来的,其组织形式恕我难以描述。
2、说到灵活,最让我头疼的是看别人用TP写的项目,特别是做二次开发。只配置文件就常常有三四处,定义的变量常量几百个,在其他非配置文件中自定义的变量常量更是不好数了,毫无条理可言。
3、TP的灵活是有原因的,因为PHP本身的灵活性(说白了就是不规范)。PHP框架的执行,其实就是PHP的文件不断的被Include来完成的。这样的话,只要你在需要使用某个函数或者常量之前定义好,那么就能使用。PHP曾经被定义为非计算机专业从业人员的编程语言,因为在写PHP代码的时候顾虑很少,以至于写出的代码很不规范。当其他框架发誓要让PHP程序规范起来的时候,TP把这种不规范发挥到了新的高度。风骚的C D F M I方法,让人心醉。
4、创作目的决定创作思维。当年ZF1出来的时候,正是PHP面向对象发力的时候,其目标就是为PHPer提供一个用面向对象方式做PHP开发的样板,之后的ZF2更加规范。而TP推出的目标大家应该很清楚了,为了让国内众多的草根PHPer(非计算机专业出身,甚至没高中毕业,刚刚经过3个月的培训)能够快速上手。如果回过头去翻TP前几个版本,那才叫烂呢。
5、TP的开发团队和核心用户的问题。今天中午和技术总监聊到了软件测试的问题,即国内很多公司的软件测试都很不专业。为什么呢,因为整个大的环境让软件测试很鸡肋。大家都想用上专业的测试,但是这无疑会加大开发的工作量,特别是大家都很不专业的时候。好了,点到为止。软件开发也一样,国内很多从业人员(科教人员)并没有专业的功底。别的不吐槽,谭浩强的绿皮书大家都读过吧,书里竟然教别人直接include一个C文件。国内的情况就是,专业的调试工具不用,没有测试用例,甚至没有软件测试的环节,为了赶时间甚至完全忽略安全问题和性能问题。就是这样一群开发人员和用户,你指望开发一个优雅的框架出来,从需求上就不可能。
6、当有些中国人不断重复德意志的严谨和倭国的细致的神话的时候。却对于自己的要求不断刷低。当国内所有PHPer都严谨到固执的时候,你认为还会有TP这种情况出现吗:很多人都说出他的缺点,但另一群人却奉若皇帝的最美的华裳,如信奉灾难也是神明的恩赐,不容置疑。
++++++++++++++++++++以下补充++++++++++++++++++++++++++++++
TP框架好不好咱们先不说了,你把TP框架放在ZendStudio和PHPStorm的项目中看看满屏的警告报错,然后再把其他框架放在项目中看看几乎没有警告,明白了吧。