不同的MVC框架的通信方式不一样吗?
这是我在阮一峰大大的博客上看到的一张图
原文地址:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm
因为公司平时用的是YII框架,所以和我理解的MVC突然就有了区别,下图是我理解的MVC
图来源于书: web-application-development-with-yii-and-php
请问MVC模式的重点只是MVC三层吗?其中不同通信方式就和自身框架有关了?
回复内容:
这是我在阮一峰大大的博客上看到的一张图
原文地址:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm
因为公司平时用的是YII框架,所以和我理解的MVC突然就有了区别,下图是我理解的MVC
图来源于书: web-application-development-with-yii-and-php
请问MVC模式的重点只是MVC三层吗?其中不同通信方式就和自身框架有关了?
前端控制器(路由)并不是MVC必需的设计模式.
MVC的核心思想是分离界面(View),逻辑(Controller),数据(Model).
比如浏览器访问页面控制器,控制器处理输入,调用模型获取数据,载入视图输出数据.
<code>/post.php?id=1024 //页面控制器(输入ID,输出文章) <?php if(!defined('APP_ROOT')) define('APP_ROOT', './'); //定义入口 require APP_ROOT.'include/common.php'; //加载模型(比如functions.php) $data = get_post(intval($_GET['id'])); //处理输入,调用模型获取数据 $view = render('post.php', $data); //载入视图输出数据 echo $view; //在控制器中获取视图需要的所有数据,并封装到$data数组中,传入模板. //如果你想在视图里直接调用模型数据,可以把render函数改为require. //这样视图跟控制器都在全局作用域,灵活性更强,但也要注意尽量不要在视图里写具体逻辑. //视图应该专注于调用并输出数据.</code></code>
/include/functions.php里的render()函数:
<code>function render($template, array $data = array()) { global $app; ob_start(); require APP_ROOT.'themes/'.$app['theme'].'/'.$template; $view = ob_get_contents(); ob_end_clean(); return $view; }</code>
mvc只是一种思想 不同的语言和框架都有各自的实现和改进 就像阮老师写的 他们只是在m v c三个层的侧重点不同
阮一峰的也不对,或者他有他的理解。 mvc并不是单向的。 m v c 之间的线估计会很多。 and mvc 就是mvc 。其他的db request router就不要扯进来了。
建议一开始不要扯什么mvc概念,找个框架用着用着,你自然就明白了。

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,

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

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

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.
