Home PHP Framework ThinkPHP What does mvc in thinkphp stand for

What does mvc in thinkphp stand for

Aug 26, 2019 pm 02:30 PM
mvc thinkphp

What does mvc in thinkphp stand for

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, a single model layer is very It is difficult to solve the requirements. ThinkPHP supports multi-layer Model. The design idea 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.

What does mvc in thinkphp stand for

Related recommendations: "ThinkPHP Tutorial"

For example, in a certain project design, it is necessary to distinguish between data layer, logic layer, and service Layer and other different model layers, we can create Model, Logic and Service directories under the module directory, and divide all model operations on the user table into three layers:

1. Data layer: Model/UserModel is used to define Data-related automatic verification and automatic completion and data access interface

2. Logic layer: Logic/UserLogic is used to define user-related business logic

3. Service layer: Used by Service/UserService For defining user-related service interfaces, etc.

The three model operation classes can all inherit the Model class, for example:

Data layer:

Home/Model/UserModel.class.php
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
}
Copy after login

Logical layer:

Home/Logic/UserLogic.class.php
namespace Home\Logic;
use Think\Model;
class UserLogic extends Model{
}
Copy after login

Service layer: Home/Service/UserService.class.php

namespace Home\Service;
use Think\Model;
class UserService extends Model{
}
Copy after login

After distinguishing different model layers, the operation of user data will be very clear. When calling, we can also It is very convenient to call with the built-in D method:

D(‘User‘) //实例化UserModel
D(‘User‘,‘Logic‘) //实例化UserLogic
D(‘User‘,‘Service‘) //实例化UserService
Copy after login

The default model layer is Model, we can also change the settings, for example:

‘DEFAULT_M_LAYER‘       =>  ‘Logic‘, // 更改默认的模型层名称为Logic
Copy after login

After the change, when instantiating, it needs to be changed to:

D(‘User‘) //实例化UserLogic
D(‘User‘,‘Model‘) //实例化UserModel
D(‘User‘,‘Service‘) //实例化UserService
Copy after login

The hierarchical division of the model layer 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 (View) layer

The view layer consists of templates and template engines. PHP code can be used directly in the templates. The design of the template engine will be in As described later, other third-party template engines can also be supported through drivers. Multi-layer views can be simply distinguished by directories (that is, template themes), for example:

View/default/User/add.html
View/blue/User/add.html
Copy after login

More complex multi-layer views can be further completed by using different view directories, for example:

view 普通视图层目录
mobile 手机端访问视图层目录
Copy after login

The advantage of this is that each different view layer can support different template theme functions.

The default view layer is the View directory. We can adjust the settings as follows:

‘DEFAULT_V_LAYER‘       =>  ‘Mobile‘, // 默认的视图层名称更改为Mobile
Copy after login

To obtain the template of the non-default view layer directory, you need to use the T function, which will be discussed later.

Controller layer

The controller layer of ThinkPHP consists of core controller and business controller. The core controller is completed by the App class inside the system. 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/UserController //用于用户的业务逻辑控制和调度
Event/UserEvent //用于用户的事件响应操作
Copy after login

Access controller Home/Controller/UserController.class.php is defined as follows:

namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
}
Copy after login

Event controller Home/Event/UserEvent.class.php is defined as follows:

namespace Home\Event;
use Think\Controller;
class UserEvent extends Controller{
}
Copy after login

What does mvc in thinkphp stand forUserController is responsible for external interactive response and responds through URL request, such as http://serverName/User/index, UserEvent is responsible for internal event response and can only be called internally:

A(‘User‘,‘Event‘);
Copy after login

The default access controller layer is Controller. We can adjust the settings as follows:

‘DEFAULT_C_LAYER‘       =>  ‘Event‘, // 默认的控制器层名称改为Event
Copy after login

What does mvc in thinkphp stand for

So it is isolated from the outside.

The division of multi-layer controllers is not mandatory and can be freely layered 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 (themes).

In the three layers of MVC, ThinkPHP does not rely on M or V. It can even only have C or only V. This is a very important user experience design in ThinkPHP design. The user only needs to define the view. It can be automatically recognized even without C.

The above is the detailed content of What does mvc in thinkphp stand for. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
How to run thinkphp project How to run thinkphp project Apr 09, 2024 pm 05:33 PM

To run the ThinkPHP project, you need to: install Composer; use Composer to create the project; enter the project directory and execute php bin/console serve; visit http://localhost:8000 to view the welcome page.

There are several versions of thinkphp There are several versions of thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP has multiple versions designed for different PHP versions. Major versions include 3.2, 5.0, 5.1, and 6.0, while minor versions are used to fix bugs and provide new features. The latest stable version is ThinkPHP 6.0.16. When choosing a version, consider the PHP version, feature requirements, and community support. It is recommended to use the latest stable version for best performance and support.

How to run thinkphp How to run thinkphp Apr 09, 2024 pm 05:39 PM

Steps to run ThinkPHP Framework locally: Download and unzip ThinkPHP Framework to a local directory. Create a virtual host (optional) pointing to the ThinkPHP root directory. Configure database connection parameters. Start the web server. Initialize the ThinkPHP application. Access the ThinkPHP application URL and run it.

Which one is better, laravel or thinkphp? Which one is better, laravel or thinkphp? Apr 09, 2024 pm 03:18 PM

Performance comparison of Laravel and ThinkPHP frameworks: ThinkPHP generally performs better than Laravel, focusing on optimization and caching. Laravel performs well, but for complex applications, ThinkPHP may be a better fit.

Development suggestions: How to use the ThinkPHP framework to implement asynchronous tasks Development suggestions: How to use the ThinkPHP framework to implement asynchronous tasks Nov 22, 2023 pm 12:01 PM

"Development Suggestions: How to Use the ThinkPHP Framework to Implement Asynchronous Tasks" With the rapid development of Internet technology, Web applications have increasingly higher requirements for handling a large number of concurrent requests and complex business logic. In order to improve system performance and user experience, developers often consider using asynchronous tasks to perform some time-consuming operations, such as sending emails, processing file uploads, generating reports, etc. In the field of PHP, the ThinkPHP framework, as a popular development framework, provides some convenient ways to implement asynchronous tasks.

How to install thinkphp How to install thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP installation steps: Prepare PHP, Composer, and MySQL environments. Create projects using Composer. Install the ThinkPHP framework and dependencies. Configure database connection. Generate application code. Launch the application and visit http://localhost:8000.

PHP MVC Architecture: Building Web Applications for the Future PHP MVC Architecture: Building Web Applications for the Future Mar 03, 2024 am 09:01 AM

Introduction In today's rapidly evolving digital world, it is crucial to build robust, flexible and maintainable WEB applications. The PHPmvc architecture provides an ideal solution to achieve this goal. MVC (Model-View-Controller) is a widely used design pattern that separates various aspects of an application into independent components. The foundation of MVC architecture The core principle of MVC architecture is separation of concerns: Model: encapsulates the data and business logic of the application. View: Responsible for presenting data and handling user interaction. Controller: Coordinates the interaction between models and views, manages user requests and business logic. PHPMVC Architecture The phpMVC architecture follows the traditional MVC pattern, but also introduces language-specific features. The following is PHPMVC

How is the performance of thinkphp? How is the performance of thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP is a high-performance PHP framework with advantages such as caching mechanism, code optimization, parallel processing and database optimization. Official performance tests show that it can handle more than 10,000 requests per second and is widely used in large-scale websites and enterprise systems such as JD.com and Ctrip in actual applications.

See all articles