西安网站建设
在线咨询

扫描二维码分享到微信

TP5与CI框架的区别 讲的很透彻

2019-06-15

深入学习一门新技术的最好方法就是看官方文档。
 
ThinkPHP5.0文档:
 
http://www.kancloud.cn/manual/thinkphp5/118003
 
 
 
官方的说辞是:
 
主要特性 :
规范:遵循PSR-2、PSR-4规范,Composer及单元测试支持;
严谨:异常严谨的错误检测和安全机制,详细的日志信息,为你的开发保驾护航; 灵活:减少核心依赖,扩展更灵活、方便,支持命令行指令扩展;
API友好:出色的性能和REST支持、远程调试,更好的支持API开发; 高效:惰性加载,及路由、配置和自动加载的缓存机制;
ORM:重构的数据库、模型及关联,MongoDb支持;
 
只是:
 
不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)
 
可以说是web后端该有的接口都有,最大程度满足使用。
 
之前学习使用过CodeIgniter(即CI),我简单的将它与CI的功能做下对比:
 
模型(Model):模板相当于对数据的操作,数据存放的形式有多种:如数据库、文件系统、内存等。CI没有强制绑定模板对数据库的操作,而ThinkPHP(以下称TP)默认跟数据库操作强相关,确实实际中操作的数据一般都是数据库的,但要操作其他存储类型的数据要怎么办呢?其实TP只是提供了操作数据的许多便利接口,只要不使用这些接口,还是不耦合的;而且存储类型的驱动是可配置的,比如可改为文件数据操作。所以TP要方便的多。
命名空间的使用。CI党体会不到命名空间带来的便利与优雅。CI使用$this->load()导入不同模块的两个model时应该是冲突的,应该是可以覆盖,但使用起来就不方便了。
TP很讲究使用的便利性,所以提供了很多函数助手,一般正常使用是$a=Class::function();,使用助手之后一般是$a = class();,便利了不少,这个使用上看习惯吧。CI就要麻烦冗长地写成$this->class->function()。
 
说说视图(view)与模板(template)。CI的视图文件的存放位置是application/view下面,而且不可配置,至少我没找到可以配置的地方。TP的view目录可配置,而且不一定要在application下,对安全访问和视图定制与替换提供比较大的便利性。
对于模板,CI实现得比较鸡肋,虽说有个模板解析类 $this->load->library('parser'); 可以通过左边这代码加载,但是只能实现变量的简单替换,较复杂的控制结构就实现不了了,到头来还是用原生的php代码实现(我估计官方也提倡用原生,毕竟原生不用多解析一般,效率上占优,语法也不用再学一套)。
而TP的模板就比较全面和成熟,有自己的一套语法,基本上是不用夹杂原生php,也许对于前端工程师来说是个好事吧,不用学php,就学个模板语法。前后端分工也就更加明确了。
 
现在一想,CI和TP的MVC目录结构有着比较大的区别:
CI的controllers、view、model就各分别一个目录,模块的划分是以上面各目录下新建子目录作为模块目录,或者干脆没有模块的概念,直接在目录下创建控制器和模型等。
而TP是以模块作为基本的隔离单元,默认各个模板所对应的目录下都有一个controllers、view、model目录。
 
 
 
 
至于调试(debug),TP绝对是甩CI几条街,官方提供的方法就有:
 
 
 
而CI只有简单的将错误的调用暂打印出来,虽说这已经可以解决60%以上的问题了。
 
 
 
 
 
所以问题来了,为什么CI在国外也很流行,国内也有一定数量的公司在使用呢?
还是用官方的话说吧:
 
CodeIgniter 就是你所需要的,如果...
你想要一个小巧的框架;
你需要出色的性能;
你需要广泛兼容标准主机上的各种 PHP 版本和配置;
你想要一个几乎零配置的框架;
你想要一个不需使用命令行的框架;
你想要一个不想被编码规则的条条框框限制住的框架;
你对 PEAR 这种庞然大物不感兴趣;
你不想被迫学习一种新的模板语言(当然如果你喜欢,你可以选择一个模板解析器);
你不喜欢复杂,追求简单;
你需要清晰、完整的文档。
 
所以,CI学习起来和用起来十分简单和上手,框架非常轻量,这就成为一部分想要高性能又不想受框架过多约束的公司的首选了。
 
 
 
TP与CI的区别就先讲到这里,后面随着学习的深入可能会有所补充。
-end-
--------------------- 
标签:西安网站建设|西安网站制作|西安网页设计|西安APP开发|西安小程序开发|建站公司


上一篇:织梦dedecms系统开启URL绝对路径的方法
下一篇:FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架

相关内容

建站知识 酷站欣赏 网站优化 网络营销 网站安全 行业新闻 公司新闻 建站工具


学习thinkphp5开发基本流程与思路

1、下载tp5环境,设置好composer,到开发环境不使用composer的时候,要在php ini中把p...

ThinkPHP5、yii2、ci3到底选哪个?

PHP一直以来都是web大神们最喜爱的开发语言,没有之一。他的简单上手,让新手爱不释手...

TP5相关网站(thinkphp5后台演示参

ThinkPHP5 1完全开发手册https: www kancloud cn manual thinkphp5_1 354156...

FastAdmin是一款基于ThinkPHP5+Boot

FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。主要特性基于Auth验证的...

COPYRIGHT (©)2018-2019 西安黑米网络 百度地图网站地图   西安网站建设     最近更新时间: 2019-06-15 13:20:04