RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:24小时服务
你可能遇到了下面的问题
关闭右侧工具栏
深入了解thinkphp中mvc的架构

     首先要了解thinkphp中的mvc的架构,我们要了解什么是mvc架构?mvc架构是指是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
   
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
   

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
那thinkphp也是一款成熟的mvc的架构,今天就带你们来深入的看下thinkphp中的mvc架构。
首先讲的是thinkphp中的控制器部分(C),作为mvc模式中最核心的控制器,起着沟通视图和模型的作用。一个好的mvc架构中,view永远不应该直接操作model,而应该通过view-controller-model的方式进行操作。一方面减少了耦合程度,另一方面在将来对view进行重构时不会影响到model。
一般来说,thinkphp的控制器就是一个类,该类位于“模块/controller”文件夹下,而操作指控制器的一个public方法。
thinkphp控制器的定义非常简单,满足以下两个条件即可:
(1)文件名形如"XXcontorller.class.php"并存放于“模块/controller”文件夹下:
(2)继承thinkphp的controller及其子类(有的时候我们需要扩展一些公用方法,但又不能改动框架,所以需要子类去继承系统的controller,以该子类作为新的controller父类。)
 而定义动作只需要在控制器中定义公共方法即可,在web目录下新建文件夹,新建入口文件并完成初始化。
thinkphp模型(M)部分,thinkphp中基础模型类为think/model类,该类完成了基本的curd、activerecord操作。
thinkphp中视图(V),thinkphp模板定义每个模块的模板文件是独立的,默认的模板文件定义规则是:视图目录/模板主题/控制器名/操作名+视图后缀
默认的视图目录是模块的view目录,框架默认的视图后缀为“.html”,系统默认不启用模块主题功能。
按照该规则,可以推断home模块下user控制器add方法对应的模块文件路径应为:
application/home/view/user/add.html
如果项目的视图目录不是view,可以通过以下配置更改目录:
'default_v_layer"='template;'//设置默认的视图层名称
模板目录就成立application/home/template了。
如果需要更改模板文件的后缀,可以通过配置。