Toggle navigation
首页
问答
IT问答
生活问答
电脑知识
百科
测评
YII框架和THINKPHP的区别是什么?
发布于2021-12-15 18:13:40
2
个回答
网友回答
2021-12-15
区别在于框架。 框架比较: 1 yii框架,美国华人开发的框架,
薛强
,纯OOP框架。 2 thinkphp框架。 2 CI
轻量级框架
,开发速度快,部署灵活。 3 cakephp 外国框架,
重量级框架
。 4 symfony(外国重量级框架); YII的老爸。 优势:框架可以节省我们50-60%的工作量,全部精力都集中在业务层面,无需关心程序的底层架构,俗称E框架,TP算是中庸的框架,但不纯净。
网友回答
2021-12-15
这不是一篇评测文章。只是我的喃喃碎语,不计较真。而且,下面的内容真的会很杂,不全面,而且你不可能有和我一样的开发经历。所以对于某些我醉心的特性,你可能不会理解。同样的,我也不可能全部理解你为何对某一项特性十分喜欢。 关于thinkphp(以下简称tp)和yii framework(以下简称yii)的背景、作者和速度方面就不涉及了。因为速度是一个很复杂的问题,牵扯的因素很多。我不得不承认thinkphp是 一个是国内框架运营方面的榜样(当fleaphp/qeephp最火的那阵,我说过fleaphp/qeephp会倒的)。 运行环境: windows nt acer 5.1 build 2600 (windows xp professional service pack 3) i586 apache/2.2.14 (win32) dav/2 mod_autoindex_color php/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 perl/v5.10.1 mysql 5.1.4 下载的代码: thinkphp 2.1,带扩展、示例和文档完整包,发布于2011年5月1日,下载地址是 http://thinkphp.cn/down/download/178 yii 1.1.7,内含框架、实例和环境检测,下载地址 http://yii.googlecode.com/files/yii-1.1.7.r3135.tar.gz 文档需要另外下载 中文化方面,tp和yii都可以满足中文用户的需求。但是由于yii是国际化的项目,所以代码的注释仍旧是英文。不过两个框架的作者都是国人(没错,yii作者的国籍仍旧是中国),所以交流起来还是很方便的。 是yii自带了一个环境检测脚本,可以告诉你当前的主机环境是否满足yii的需求。检测的内容也比较详细。我觉得这点比较方便。tp最低需要php5.0支持,而yii最低需要php 5.1.0支持。由于我使用php 5.3,所以对我来说没有什么区别。 yii是纯面向对象的的框架,而tp提供了一系列单字母函数。相比之下我更喜欢yii的方式,因为可以避免项目之间的冲突。 tp在以前的版本的基类base类,当时就和一个整合ucenter时的类冲突了,一度很苦恼。现在tp的各种基类仍旧是直接命名,如think 类。在项目开发过程中就会体会命名冲突的痛苦之处。yii则在框架的类都加上了c前缀(接口是i前缀),有效地避免了这个问题。yii中的 ccomponent是所有类的基类,可以看看ccomponent的代码,很有用。 说到命名问题了,就不得不说自动导入的问题。tp的类导入和yii的代码风格差不多。但是yii还支持php的命名空间和自定义autoload方法。 tp有个特色叫项目编译。我觉得与其使用项目编译,还不如使用apc。在yii中也有个yiilite.php文件,里面就包含了yii的所有核心类。yii作者表示在没有apc的情况下,还是不要使用这个“编译”好的文件,因为反而会增加系统开销。 tp中还在第一次访问的时候自动生成项目,我觉得这一点和自动编译一样,都是我不喜欢的。我对每添加一个if都很敏感,这种判断让我很纠结。比如说 tp在每次运行的时候都要检测php版本,而yii则单独做了一个内容更详细的环境监测脚本。我既然要用这个框架,我在第一次使用的时候,肯定就知道能不 能在当前环境上使用了,为什么要每次都要检测呢。当时我就说过,tp为用户做了太多事情。比如旧版本中的topn函数。 yii的组件思路是非常不错的,用起来十分地舒服。从session到cache,你可以无缝地更换所有的组件而无需重构项目。而且yii的延迟加 载也做得比较彻底,每个组件都是用到的时候才加载。比如,tp中,如果配置了session自动打开,则tp在应用初始化的时候执行 session_start()。而yii则是你用到session的时候才打开session。 说到项目的配置文件,tp要求是config.php,而yii则比较灵活,支持多配置文件。 当初tp很推崇自己的thinkajax,现在也改用jquery。这一点是进步。 tp做了很多小实例,这一点值得yii学习。yii在这一方面正在有一个叫yii playground的实例网站在开发中(http://code.google.com/p/yiiplayground/)。 tp的动态模型可以实现不需要定义model。但是在实际的项目中,我更倾向于使用yii的方式。顺便说一句,将label定义在model中,为我的日常开发带来了许多方便之处。 刚才提到tp的项目自动生成,yii中也有这种工具。而且比起tp,yii的工具更加强大而且可扩展。 从tp的代码中,有人可以看出其作者熟悉java。而从yii的代码中,有人会发现其作者熟悉.net。这常常是我身边人看到代码的时候发生的小插曲。 yii封装了大量的页面控件和类库,也是yii如此吸引我的一点。这是tp短期无法比拟的,在tp的使用过程中总遇到这样那样的问题,让我感觉tp对我反而是阻碍。而yii真的是,舒服,实在是太好用了! 无论从代码规范、设计思路、类库丰富程度上来说,tp都远远不及yii。有人说你看tp多简洁,yii太臃肿了。错了!简单和简洁不是一回事。tp 那叫简单,你读读yii的代码吧,那才叫简洁。至于臃肿,去看看zend framework就知道了。(顺便说一句,我很喜欢zend framework,它是学习设计的典范) 说到读代码。对于程序员真的很难吗?读写得好的代码应该是一种享受才对。yii的学习曲线是比tp高那么一点点,但是对比yii的巨大优势而言不算什么了。而且,我认为在遇到学习困难就退缩或者认为yii就像天书一样的人,还是转行吧。 以上是应一篇评论所写的。对比tp1,现在的tp2的确有了很多进步,但是还是存在一些问题。对比yii……,tp真的没有可比的能力。抱歉让tp的fans失望了。 那就下定论了吗?不,不是的。从类库到框架,再到解决方案。什么是最好的?每一个人都有不同发说法,这是因为每一个人的思维习惯不同,遇到的问题不同,问题所在的环境也不同。怎么能奢求所有人都有同一个选择呢? 还是那句,适合,就是最好的。对我来说,yii是最好的。
生活问答最新文章
1
*财经大学外国语学院属于三本么
2
什么是对口高考?
3
自己接私活做网站,学习什么动态语言
4
科目4考完多久可以拿证?
5
2015年各省艺考录取分数线是多少
6
徐州幼儿师范高等专科学校
7
安徽高考征集志愿
8
高考分数低于拟转入专业当年最低录取分数线的解释
9
传媒大学录取分数是不是专业分数加高考分数达到普通高考分数线?
10
高考分数和学校的最底录取分数一样会被学校录取不?
相关阅读
1
东方航空自愿和非自愿退票的区别是什么?
2
经理和主管的区别是什么?
3
设计经理和设计主管的区别是什么?
4
主任和主管的区别是什么
5
经理和主管的区别是什么?
6
阿里巴巴的中国供应商服务,诚信通和贸易通的分别是什么?有什么区别?(越具体越好)
7
人有限责任公司和个人独资企业的区别是什么
8
磁粉离合器和制动器区别是什么?有什么不同?
9
中水工程指的是什么 和污水工程有什么区别吗
10
玻璃纤维含碱的,和无碱的区别是什么、
11
可爱和漂亮的区别是什么
12
成人本科脱产好考吗?
回到
顶部