Home > Backend Development > PHP Tutorial > 不同的MVC框架的通信方式不一样吗?

不同的MVC框架的通信方式不一样吗?

WBOY
Release: 2016-06-06 20:27:01
Original
1221 people have browsed it

这是我在阮一峰大大的博客上看到的一张图

原文地址:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm

不同的MVC框架的通信方式不一样吗?

因为公司平时用的是YII框架,所以和我理解的MVC突然就有了区别,下图是我理解的MVC

不同的MVC框架的通信方式不一样吗?

图来源于书: web-application-development-with-yii-and-php

请问MVC模式的重点只是MVC三层吗?其中不同通信方式就和自身框架有关了?

回复内容:

这是我在阮一峰大大的博客上看到的一张图

原文地址:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm

不同的MVC框架的通信方式不一样吗?

因为公司平时用的是YII框架,所以和我理解的MVC突然就有了区别,下图是我理解的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>
Copy after login

/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>
Copy after login

mvc只是一种思想 不同的语言和框架都有各自的实现和改进 就像阮老师写的 他们只是在m v c三个层的侧重点不同

阮一峰的也不对,或者他有他的理解。 mvc并不是单向的。 m v c 之间的线估计会很多。 and mvc 就是mvc 。其他的db request router就不要扯进来了。
建议一开始不要扯什么mvc概念,找个框架用着用着,你自然就明白了。

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template