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!

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct


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

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Atom editor mac version download
The most popular open source editor

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

Zend Studio 13.0.1
Powerful PHP integrated development environment