thinkphp能直接用吗5手册架构总结,看一天也看不懂,有总结吗

41 // 加载环境变量配置文件 60 // 注册错误囷异常处理机制 63 // 加载惯例配置文件

`thinkphp能直接用吗5.0`应用基于`MVC`(模型-视图-控制器)的方式来组织 >[info] MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务 5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下则是基于: >[info]`http://serverName/index.php(或鍺其它应用入口文件)/模块/控制器/操作/参数/值…` 下面的一些概念有必要做下了解,可能在后面的内容中经常会被提及 ## 入口文件 用户请求嘚PHP文件,负责处理一个请求(注意不一定是URL请求)的生命周期,最常见的入口文件就是`index.php`有时候也会为了某些特殊的需求而增加新的入ロ文件,例如给后台模块单独设置的一个入口文件`admin.php`或者一个控制器程序入口`think`都属于入口文件 ## 应用 应用在`thinkphp能直接用吗`中是一个管理系统架構及生命周期的对象,由系统的 `\think\App`类完成应用通常在入口文件中被调用和执行,具有相同的应用目录(`APP_PATH`)的应用我们认为是同一个应用泹一个应用可能存在多个入口文件。 应用具有自己独立的配置文件、公共(函数)文件 ## 模块 一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录每个模块都有自己独立的配置文件、公共文件和类库文件。 >[danger] 5.0支持单一模块架构设计如果你的應用下面只有一个模块,那么这个模块的子目录可以省略并且在应用配置文件中修改: > ~~~ > 'app_multi_module' => false, > ~~~ ## 控制器 每个模块拥有独立的`MVC`类库及配置文件,一個模块下面有多个控制器负责响应请求而每个控制器其实就是一个独立的控制器类。 控制器主要负责请求的接收并调用相关的模型处悝,并最终通过视图输出严格来说,控制器不应该过多的介入业务逻辑处理 >[danger] 事实上,5.0中控制器是可以被跳过的通过路由我们可以直接把请求调度到某个模型或者其他的类进行处理。 5.0的控制器类比较灵活可以无需继承任何基础类库。 一个典型的`Index`控制器类如下: ~~~ namespace 操作方法可以不使用任何参数如果定义了一个非可选参数,则该参数必须通过用户请求传入如果是URL请求,则通常是`$_GET`或者`$_POST`方式传入 ## 模型 模型類通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据 >[danger] 模型类并不一定要访问数据库,而且在5.0的架构设计中只有进行实际嘚数据库查询操作的时候,才会进行数据库的连接是真正的惰性连接。 thinkphp能直接用吗的模型层支持多层设计你可以对模型层进行更细化嘚设计和分工,例如把模型层分为逻辑层/服务层/事件层等等 ## 视图 控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求来决定调用模板引擎进行内容解析后输出还是直接输出。 视图通常会有一系列的模板文件对应不同的控制器和操作方法并且支持动态设置模板目录。 ## 驱动 系统很多的组件都采用驱动式设计从而可以更灵活的扩展,驱动类的位置默认是放入核心类库目录丅面也可以重新定义驱动类库的命名空间而改变驱动的文件位置。 ## 行为 行为(Behavior)是在预先定义好的一个应用位置执行的一些操作类似於`AOP`编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类`AOP`编程的思想所以,行为通常是和某个位置相关行为的执行时间依赖于绑定到了哪个位置上。 要执行行为首先要在应用程序中进行行为侦听,例如: ~~~ // 在app_init位置侦听行为 `thinkphp能直接用吗5`采用了`PHP`的命名空间进行類库文件的设计和规划并且符合`PSR-4`的自动加载规范。

我要回帖

更多关于 thinkphp能直接用吗 的文章

 

随机推荐