


Introduction to the multi-layer MVC support in the new features of ThinkPHP3.1
This article mainly introduces the support of multi-layer MVC in the new features of ThinkPHP3.1. It has a certain reference value. Now I share it with you. Friends in need can refer to it
Default The model layer consists of Model classes. However, as the project grows and the business system becomes more complex, it is difficult for a single model layer to meet the requirements. Multi-layer Model support has been launched since 3.1. This article mainly introduces the support of ThinkPHP3.1 multi-layer MVC. Friends who need it can refer to
1. Model (Model) layer: The default model layer is composed of the Model class. However, as the project grows and the business system becomes more complex, it is difficult for a single model layer to meet the requirements. Multi-layer Model support has been launched since 3.1. The design idea is very simple. Different model layers still inherit from the system’s Model class. , but distinctions are made in the directory structure and naming conventions. For example, in a certain project design, it is necessary to distinguish between different model layers such as data layer, logic layer, and service layer. We can create Model, Logic, and Service under the Lib directory of the project. Directory, all model operations on user tables are divided into three layers:
Data layer: Model/UserModel is used to define data-related automatic verification and automatic completion and data access interfaces
Logic layer: Logic/UserLogic is used to define user-related business logic
Service layer: Service/UserService is used to define user-related service interfaces, etc.
These three model operation classes can all inherit the Model class, so that the operation of user data is very clear. When calling, you can also use the built-in D method to conveniently call:
D('User') //实例化UserModel D('User','Logic') //实例化UserLogic D('User','Service') //实例化UserService
The hierarchical division of model layers is very flexible, and developers can freely define hierarchies according to the needs of the project.
2. View layer: is composed 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, and it can also be supported through the driver. Other third-party template engines. Multiple layers of views can be simply distinguished by directories, for example:
Tpl/default/User/add.html Tpl/blue/User/add.html
##3. Controller layer: ThinkPHP control The controller layer consists of a core controller and a business controller. The core controller is completed by the App class inside the system and is responsible for the scheduling control of applications (including modules and operations), including HTTP request interception and forwarding, loading configuration, etc. The business controller is Completed by user-defined Action class. Version 3.1 has added support for multi-layer service controllers. Its implementation principle is similar to the layering of models, such as business controllers and event controllers:
Action/UserAction //用于用户的业务逻辑控制和调度 Event/UserEvent //用于用户的事件响应操作
A('User','Event');
At the same time, the R method can also support the calling of multi-layer controllers. A third parameter is added to indicate the layer name of the controller, for example:
R('User/register',array(15),'Event');
In the three layers of MVC,
ThinkPHP does not depend on M or V, and can even only have C or only V. This is The design of ThinkPHP is a very important user experience design. Users only need to define the view, and it can be automatically recognized without C.
A more complete introduction to the new features of ThinkPHP3.1 that support Ajax
About thinkphp to implement password search for sending emails Introduction to the return function
The above is the detailed content of Introduction to the multi-layer MVC support in the new features of ThinkPHP3.1. For more information, please follow other related articles on the PHP Chinese website!

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

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP8.3 released: Overview of new features As technology continues to develop and needs change, programming languages are constantly updated and improved. As a scripting language widely used in web development, PHP has been constantly improving to provide developers with more powerful and efficient tools. The recently released PHP 8.3 version brings many long-awaited new features and improvements. Let’s take a look at an overview of these new features. Initialization of non-null properties In past versions of PHP, if a class property was not explicitly assigned a value, its value

An in-depth analysis of the new features of PHP8 to help you master the latest technology. As time goes by, the PHP programming language has been constantly evolving and improving. The recently released PHP8 version provides developers with many exciting new features and improvements, bringing more convenience and efficiency to our development work. In this article, we will analyze the new features of PHP8 in depth and provide specific code examples to help you better master these latest technologies. JIT compiler PHP8 introduces JIT (Just-In-Time) compilation

New features of php8 include JIT compiler, type deduction, named parameters, union types, properties, error handling improvements, asynchronous programming support, new standard library functions and anonymous class extensions. Detailed introduction: 1. JIT compiler, PHP8 introduces the JIT compiler, which is an important performance improvement. The JIT compiler can compile and optimize some high-frequency execution codes in real time, thereby improving the running speed; 2. Type derivation , PHP8 introduces the type inference function, allowing developers to automatically deduce the type of variables when declaring variables, etc.

[Interpretation of new features of Go language: To make programming more efficient, specific code examples are needed] In recent years, Go language has attracted much attention in the field of software development, and its simple and efficient design concept has attracted more and more developers. As a statically typed programming language, Go language continues to introduce new features to improve development efficiency and simplify the code writing process. This article will provide an in-depth explanation of the latest features of the Go language and discuss how to experience the convenience brought by these new features through specific code examples. Modular development (GoModules) Go language from 1

The new Redis extension introduced in PHP8.1 With the rapid development of the Internet, a large amount of data needs to be stored and processed. In order to improve the efficiency and performance of data processing, caching has become an indispensable part. In PHP development, Redis, as a high-performance key-value storage system, is widely used in caching and data storage scenarios. In order to further improve the experience of using Redis in PHP, PHP8.1 introduces a new Redis extension. This article will introduce the new functions of this extension and provide

Overview of the new features of CSS3: How to use CSS3 to achieve transition effects CSS3 is the latest version of CSS. Among the many new features, the most interesting and practical one should be the transition effect. Transition effects can make our pages smoother and more beautiful during interaction, giving users a good visual experience. This article will introduce the basic usage of CSS3 transition effects, with corresponding code examples. transition-property attribute: Specify the CSS property transition effect that needs to be transitioned

The new features of go language are: 1. Go module, used to manage the dependencies of Go language projects; 2. Error handling, adding a new error type error, making error handling more flexible and concise; 3. Context package, used Used to transfer request range values between goroutines; 4. Embedding, that is, one structure can be embedded in another structure; 5. Synchronization package, to better control the synchronization and communication between goroutines; 6. Error value, Better distinguish between different types of errors; 7. Generics allow developers to write more flexibly.

Overview of the new features of CSS3: How to use CSS3 to achieve horizontally centered layout In web design and layout, horizontally centered layout is a common requirement. In the past, we often used complex JavaScript or CSS tricks to achieve this. However, CSS3 introduced some new features that make horizontally centered layouts simpler and more flexible. This article will introduce some new features of CSS3 and provide some code examples to demonstrate how to use CSS3 to achieve horizontally centered layout. 1. Use flexbox to layout fle
