Simple implementation of php mvc
php mvc implementation method: first define the system directory; then obtain the controller; finally enter "path/to/yoursite/index.php?controller=test&action=test" in the browser to test successfully.
Recommended: "PHP Video Tutorial"
The simplest way to implement MVC development in PHP— —Single point of entry
Today I will start writing in detail some of my understanding of MVC, as well as my process of implementing one of my own frameworks during the development process. Maybe what I said is incorrect, please correct me!
There are a lot of teaching materials about MVC on the website. I won’t go into details here. If you don’t understand, I recommend you to search for “MVC” on Baidu. I believe you can find what you want. Here I will talk about my understanding of MVC in actual PHP development. M, module, main task is to read data from database or other file systems in the way we need. V, view, my understanding is that it is mainly responsible for displaying data to users in the form of html. C, controller, is mainly responsible for business logic. For example, if you want to display the login interface, you need to call the loginAction method of a controller userController to display it (maybe this does not need to call the module). For another example, if you perform a login check, you can call the userController method. checkAction to perform logical processing. (I feel Verdana’s correction_).
Quote
M refers to model. The Controller does not participate in business logic, and the entire business logic part should be placed in the Model layer. The Controller only plays the role of distributing requests, that is to say, it gets the current Request, decides which Model to call to obtain the data, and then assigns it to which View to render the page.
I think it is best to implement MVC specifically. to single point of entry.
What is a single point of entry? The so-called single point of entry means that there is only one entrance for the entire application, and all implementations are forwarded through this entrance. For example, above we use index.php as the single point of entry for the program. Of course, this can be controlled by you.
Why do we need a single point of entry? There are several advantages to a single point of entry: First, some variables, classes, and methods processed globally by the system can be processed here. For example, you need to perform preliminary filtering of data, you need to simulate session processing, you need to define some global variables, and you even need to register some objects or variables into the register (mainly implemented globally, for details you can refer to my previous translation Some of the articles "Using global variables in PHP"). Second, the program structure is clearer. Of course, there are many more benefits, and I won’t list them all. You can experience them in detail.
Of course, there are some shortcomings in single-point entry. For example, when your system becomes large, it is impossible to have only one point as the entry point, especially when the system has two completely unrelated functions. But I am happy to say that this It is scalable and you can expand multiple entries. For example, in a recent large project, the backend management and the frontend are not related, so I will have two entrances, one is index.php and the other is admin.php. But this does not mean that single point entrance is not good (you can figure out the specific meaning).
So, how to implement a single point of entry? This is my focus for this section. Generally speaking, it is realized through the address mapping of URL (I have an article talking about this before: "Answering several questions on PHPCHINA: URL mapping", which implements the core of single point entry. Here I implement it specifically and Demonstration below). The most important thing about the single point of entry is to pass parameters through the url to realize the allocation of the program. Specifically, for example, if the address is index.php?controller=test&action=test, then the request will be forwarded to the corresponding testController file through index.php. And execute its corresponding testAction method (the names of the controllers and methods here refer to the ideas of Zend Framework).
Below we use the simplest method to implement the single point of entry mentioned above (remember: for the sake of simplicity, I am not using URL mapping here)
/index.php <? /** * MVC演示demo * 仅仅实现最基本的MVC功能,不包含安全处理,数据过滤,及其他优化措施。 */ define(‘SITE_PATH’,str_replace(‘‘,’/’,dirname(FILE)));//定义系统目录 controller=(!empty(controller=(!empty(_GET[‘controller’]))?GET[‘controller′]:‘index′; //获取控制器,默认indexGET[‘controller′]:‘index′; //获取控制器,默认indexaction=(!empty(GET[‘action′]))?GET[‘action′]))?_GET[‘action’]:‘index’; //方法名称,默认index controllername=controllername=controller.‘Controller’; controllerfile=SITEPATH.‘/app/controller/′.controllerfile=SITEPATH.‘/app/controller/′.controller_name.‘.class.php’;//获取控制器文件 if(file_exists(controller_file)){ require_once(controller_file)){ require_once(controller_file); controller=newcontroller=newcontroller_name(); controller->{controller->{action.‘Action’}(); }else{ die(‘找不到对应的控制器!’); } ?> 对应的一个演示demo /app/controller/testController.class.php(注意路径) <? /** * MVC演示demo * 仅仅实现最基本的MVC功能,不包含安全处理,数据过滤,及其他优化措施。 */ class testController { function testAction(){ echo ‘Hello,World!’; } } ?>
Open the browser and enter http ://path/to/yoursite/index.php?controller=test&action=test (pay attention to modify your path accordingly), if you see Hello, World!, it means that the first step of MVC, the single point entry is successful!
The above is the detailed content of Simple implementation of php mvc. 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

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

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

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
