In thinkphp5, MVC layering refers to the division of labor and cooperation between the model layer, view layer and controller layer. The logic layer and presentation layer perform separate operations; the model layer is responsible for database operations, and the controller is a module class. , scheduled and operated according to the URL, and the view is used to connect the action controller and the template file.
The operating environment of this article: Windows 10 system, ThinkPHP version 5, Dell G3 computer.
What is MVC layering in thinkphp5
MVC, M model, V view, C controller.
Layering means division of labor and cooperation, with the logical layer and the presentation layer operating separately. The model is responsible for: database operations. Controller: Any WEB operation is an operation of a module. The controller is a module class that schedules and operates according to the URL. View (composed of view class and template file): connects the action controller and the template file. The action class passes the data to the template file through the View class, and the template file converts the received data into the corresponding data format for display.
ThinkPHP is based on the MVC (Model-View-Controller, Model-View-Controller) pattern, and supports multi-layer (multi-Layer) design.
Model layer
The default model layer is composed of the Model class, but as the project grows and the business system becomes more complex, it is difficult for a single model layer to meet the requirements. The design idea of Model support is very simple. Different model layers still inherit from the system's Model class, but they are distinguished in the directory structure and naming convention.
For example, in the design of a certain project, we need to distinguish between different model layers such as data layer, logic layer, and service layer. We can create model, logic, and service directories under the module directory to store all models in the user table. The operation is divided into three layers:
Data layer: model/User is used to define data-related automatic verification and automatic completion and data access interface
Logic layer: logic/User is used to define user-related Business logic
Service layer: service/User is used to define user-related service interfaces, etc.
And these three model operation classes can all inherit the \think\Model class.
The hierarchical division of model layers is very flexible. Developers can freely define and add model hierarchies according to the needs of the project. You can also only use the Model layer.
View layer
The view layer consists of a template and a template engine. PHP code can be used directly in the template. The design of the template engine will be described later. It can also support other functions through the driver. Third-party template engine. Multi-layer views can be simply distinguished by directories, for example:
view/default/user/add.html view/blue/user/add.html
More complex multi-layer views can be further implemented by using different view directories, for example:
view normal view Layer Directory
Mobile Access View Layer Directory
Controller (Controller) Layer
ThinkPHP’s controller layer consists of core controllers and business controllers. The core control The controller is completed by the App class inside the system and is responsible for the scheduling control of applications (including modules, controllers and operations), including HTTP request interception and forwarding, loading configuration, etc. The business controller is completed by a user-defined controller class. The implementation principle of multi-layer business controller is similar to the layering of models, such as business controller and event controller:
controller/User //用于用户的业务逻辑控制和调度 event/User //用于用户的事件响应操作
controller\User is responsible for external interaction response and responds through URL request, such as http://serverName /User/index, and event\User is responsible for internal event response and can only be called internally, so it is isolated from the outside. The division of multi-layer controllers is not mandatory and can be layered freely according to the needs of the application. In the controller layer, you can call the layered model as needed, or you can call different layered views.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is MVC layering in thinkphp5. For more information, please follow other related articles on the PHP Chinese website!

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
