Home Backend Development PHP Problem Simple implementation of php mvc

Simple implementation of php mvc

Nov 20, 2020 am 09:07 AM
mvc php

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.

Simple implementation of php mvc

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!’;
}
}
?>
Copy after login

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!

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)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

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

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

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

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

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

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

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,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

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

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

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

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

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 PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

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.

See all articles