热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp5中MVC分层的含义是什么

这篇文章主要介绍“thinkphp5中MVC分层的含义是什么”,在日常操作中,相信很多人在thinkphp5中MVC分层的含义是什么问题上存在疑惑,小编查阅了各

这篇文章主要介绍“thinkphp5中MVC分层的含义是什么”,在日常操作中,相信很多人在thinkphp5中MVC分层的含义是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp5中MVC分层的含义是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在thinkphp5中,MVC分层指的是模型层、视图层和控制器层分工合作,逻辑层和表现层进行分开的操作;模型层负责数据库操作,控制器就是一个模块类,根据url进行调度和操作,视图用于连接action控制器和模板文件。

本文操作环境:Windows10系统、ThinkPHP5版、Dell G3电脑。

thinkphp5中MVC分层是什么

MVC,M模型,V视图,C控制器。

分层,就是分工合作,逻辑层和表现层进行分开的操作。模型负责:数据库操作。控制器:任何一个WEB操作都是一个模块的某个操作,控制器就是一个模块类,根据url进行调度和操作。视图(view类和模版文件组成):连接action控制器和模版文件,Action类把数据通过View类传递到模板文件,而模板文件把接收到的数据转换成相应的数据格式显示。

ThinkPHP基于MVC(Model-View-Controller,模型-视图-控制器)模式,并且均支持多层(multi-Layer)设计。

模型(Model)层

默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要求,多层Model的支持设计思路很简单,不同的模型层仍然都继承自系统的Model类,但是在目录结构和命名规范上做了区分。

例如在某个项目设计中需要区分数据层、逻辑层、服务层等不同的模型层,我们可以在模块目录下面创建model、logic和service目录,把对用户表的所有模型操作分成三层:

数据层:model/User 用于定义数据相关的自动验证和自动完成和数据存取接口

逻辑层:logic/User 用于定义用户相关的业务逻辑

服务层:service/User 用于定义用户相关的服务接口等

而这三个模型操作类统一都继承\think\Model类即可。

对模型层的分层划分是很灵活的,开发人员可以根据项目的需要自由定义和增加模型分层,你也完全可以只使用Model层。

视图(View)层

视图层由模板和模板引擎组成,在模板中可以直接使用PHP代码,模板引擎的设计会在后面讲述,通过驱动也可以支持其他第三方的模板引擎。视图的多层可以简单的通过目录区分,例如:

view/default/user/add.html
view/blue/user/add.html

复杂一点的多层视图还可以更进一步,采用不同的视图目录来完成,例如:

view 普通视图层目录

mobile 手机端访问视图层目录

控制器(Controller)层

ThinkPHP的控制器层由核心控制器和业务控制器组成,核心控制器由系统内部的App类完成,负责应用(包括模块、控制器和操作)的调度控制,包括HTTP请求拦截和转发、加载配置等。业务控制器则由用户定义的控制器类完成。多层业务控制器的实现原理和模型的分层类似,例如业务控制器和事件控制器:

controller/User //用于用户的业务逻辑控制和调度
event/User //用于用户的事件响应操作

controller\User负责外部交互响应,通过URL请求响应,例如 http://serverName/User/index,而 event\User 负责内部的事件响应,并且只能在内部调用,所以是和外部隔离的。多层控制器的划分也不是强制的,可以根据应用的需要自由分层。控制器分层里面可以根据需要调用分层模型,也可以调用不同的分层视图。

到此,关于“thinkphp5中MVC分层的含义是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程笔记网站,小编会继续努力为大家带来更多实用的文章!


推荐阅读
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Java EE 平台集成了多种服务、API 和协议,旨在支持基于 Web 的多层应用程序开发。本文将详细介绍 Java EE 中的 13 种关键技术规范,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ... [详细]
  • 本文介绍了在 iOS 开发中设置图片和视图圆角的几种方法,包括通过 layer 设置圆角、使用贝塞尔曲线和 Core Graphics 框架,以及使用 CAShapeLayer 和 UIBezierPath。每种方法都有其优缺点,适用于不同的场景。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文探讨了在 SQL Server 2012 的 Integration Services 项目中配置 ADO.NET 源时遇到的错误及其解决方案。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • XAMPP 遇到 404 错误:无法找到请求的对象
    在使用 XAMPP 时遇到 404 错误,表示请求的对象未找到。通过详细分析发现,该问题可能由以下原因引起:1. `httpd-vhosts.conf` 文件中的配置路径错误;2. `public` 目录下缺少 `.htaccess` 文件。建议检查并修正这些配置,以确保服务器能够正确识别和访问所需的文件路径。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
author-avatar
手机用户2502936521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有