2017年6月19日18:51:53php
架构:
1.ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织。
2.MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分红三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理本身的任务。
3.传统的访问方法:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操做/参数/值…
4.入口文件
用户请求的PHP文件,负责处理一个请求(注意,不必定是URL请求)的生命周期,最多见的入口文件就是index.php,
有时候也会为了某些特殊的需求而增长新的入口文件,例如给后台模块单独设置的一个入口文件admin.php或者一个控制器程序入口think都属于入口文件。
5.应用
应用在ThinkPHP中是一个管理系统架构及生命周期的对象,由系统的 \think\App类完成,应用一般在入口文件中被调用和执行,具备相同的应用目录(APP_PATH)的应用咱们认为是同一个应用,但一个应用可能存在多个入口文件。
应用具备本身独立的配置文件、公共(函数)文件。
6.模块
一个典型的应用是由多个模块组成的,这些模块一般都是应用目录下面的一个子目录,每一个模块都有本身独立的配置文件、公共文件和类库文件。
7.5.0支持单一模块架构设计,若是你的应用下面只有一个模块,那么这个模块的子目录能够省略,而且在应用配置文件中修改:
8.控制器
每一个模块拥有独立的MVC类库及配置文件,一个模块下面有多个控制器负责响应请求,而每一个控制器其实就是一个独立的控制器类。
控制器主要负责请求的接收,并调用相关的模型处理,并最终经过视图输出。严格来讲,控制器不该该过多的介入业务逻辑处理。
9.事实上,5.0中控制器是能够被跳过的,经过路由咱们能够直接把请求调度到某个模型或者其余的类进行处理。
10.操做
一个控制器包含多个操做(方法),操做方法是一个URL访问的最小单元。
1.操做方法能够不使用任何参数,若是定义了一个非可选参数,则该参数必须经过用户请求传入,若是是URL请求,则一般是$_GET或者$_POST方式传入。
2.模型
模型类一般完成实际的业务逻辑和数据封装,并返回和格式无关的数据。
模型类并不必定要访问数据库,并且在5.0的架构设计中,只有进行实际的数据库查询操做的时候,才会进行数据库的链接,是真正的惰性链接。
ThinkPHP的模型层支持多层设计,你能够对模型层进行更细化的设计和分工,例如把模型层分为逻辑层/服务层/事件层等等。
3.视图
控制器调用模型类后返回的数据经过视图组装成不一样格式的输出。视图根据不一样的需求,来决定调用模板引擎进行内容解析后输出仍是直接输出。
视图一般会有一系列的模板文件对应不一样的控制器和操做方法,而且支持动态设置模板目录。
4.驱动
系统不少的组件都采用驱动式设计,从而能够更灵活的扩展,驱动类的位置默认是放入核心类库目录下面,也能够从新定义驱动类库的命名空间而改变驱动的文件位置。
5.行为
行为(Behavior)是在预先定义好的一个应用位置执行的一些操做。相似于AOP编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类AOP编程的思想。因此,行为一般是和某个位置相关,行为的执行时间依赖于绑定到了哪一个位置上。
6.命名空间
ThinkPHP5采用了PHP的命名空间进行类库文件的设计和规划,而且符合PSR-4的自动加载规范。数据库
总结:编程
TP5.0架构总览,都是一些概念性的东西,MVC更加明显,驱动和行为理解的仍是不够好。设计模式