ThinkPHP框架基本特点
ThinkPHP是一个简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用PHP面向对象设计模式和MVC模式,在实现MVC的同时,其模型层又是一个ORM框架。整个框架具有如下特点:
1、分层MVC架构
ThinkPHP在实现MVC架构的同时实现了多层架构,即应用程序在分成模型、视图和控制器的这三层的同时,这三层又可以继续分成多个子层。
例如模型层又可以区分数据层、逻辑层、服务层等不同的模型层,那对用户表的模型操作来说,可以分成如下层次:
数据层:Model/UserModel 用于定义数据相关的自动验证和自动完成和数据存取接口
逻辑层:Logic/UserLogic 用于定义用户相关的业务逻辑
服务层:Service/UserService 用于定义用户相关的服务接口等。
2、单入口文件,模块化设计
ThinkPHP所有的操作都通过一个单一的入口文件,默认的入口文件为index.php,用户自己定义并修改为自己的入口文件。入口文件主要用于载入框架入口文件定义定义框架路径、项目路径等。
3、CBD(核心Core+行为Behavior+驱动Driver)架构模式
ThinkPHP从3.0版本开始引入了全新的CBD(核心Core+行为Behavior+驱动Driver)架构模式,框架从底层采用核心+行为+驱动的架构体系,核心保留了最关键的部分,并在重要位置设置了标签用以标记。在一些外部依赖功能上采用驱动设计,一个功能通过不同的驱动可以有多种实现,框架在这些驱动之上提供统一的抽象接口。比如,框架提供了多种缓存驱动类来支持当前流行的各种缓存服务:
4、多URL模式
ThinkPHP提供了多种URL模式,用户可以根据项目的实际需要来实现不同的URL风格。ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式。
普通模式:也就是传统的GET传参方式来指定当前访问的模块和操作,例如:http://localhost/?m=home&c=user&a=login&var=value。m参数表示模块,c参数表示控制器,a参数表示操作(当然这些参数都是可以配置的),后面的表示其他GET参数。
PATHINFO模式:是系统的默认URL模式,PATHINFO模式下面的URL访问地址是:http://localhost/index.php/home/user/login/var/value/。在PATHINFO模式下面,依然可以采用普通URL模式的参数方式,例如:
http://localhost/index.php/home/user/login?var=value依然是有效的。
REWRITE模式:是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。去掉路径中的index.php之后就可以用下面的URL地址访问了:http://localhost/home/user/login/var/value。
兼容模式:是用于不支持PATHINFO的特殊环境,URL地址是:
http://localhost/?s=/home/user/login/var/value。
PATHINFO地址的前三个参数分别表示模块/控制器/操作。