1、应用。应用在tp中是一个管理系统架构及生命周期的对象,由系统的think\App类完成,应用通常在入口文件中被调用和执行。应用具有自己独立的配置文件、公共(函数)文件和路由定义文件等。
2、模块。一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都有自己的配置文件、公共文件和类库文件。
3、控制器。每个模块拥有独立的类库及配置文件,一个模块下面有多个控制器负责响应请求,而每个控制器其实就是一个独立的控制器类。控制器主要负责请求的接收,并调用相关的模型处理,并最终通过视图输出。严格来说,控制器不应该过多的介入业务逻辑处理。事实上,控制器是可以被跳过的,通过路由我们可以直接把请求调度到某个模型或者其他的类进行处理。
4、操作。一个控制器包含多个操作(方法),操作是一个URL访问的最小单元。
5、模型。模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。模型类并不一定要访问数据库,而且在5.1的架构设计中,只有进行实际的数据库查询操作的时候,才会进行数据库的连接,是真正的惰性连接。tp的模型支持多层设计,可以对模型层进行更细化的设计和分工,例如把模型层分为逻辑层/服务层/事件层等。
6、视图。控制器调用模型类后,返回的数据通过视图组装成不同格式的输出,视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。
7、模板。视图通常会有一系列的模板文件对应不同的控制器和方法,并且支持动态设置模板目录。模板文件中可以使用一些特殊的模板标签,这些标签的解析通常由模板引擎负责实现。tp中内置了一个基于XML的性能卓越的模板引擎,这是一个专门为tp服务的内置模板引擎,可以很方便地实现模板输出。
8、命名空间。有效解决多个方法命名冲突的问题。可采用use...的方式导入类。命名空间只对函数、类、常量有效。