MVC模式的PHP实现(1)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

MVC模式的PHP实现

原作:Harry Fuecks

翻译:Easy Chen

 

MVC模式在网站架构中十分常见。它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力。

 

视图(View

 

 视图主要指我们送到Web浏览器的最终结果——比如我们的脚本生成的HTML。当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的。

 

对视图来说,最重要的事情可能是它应该是自我意识(self aware的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色。

 

XML为例,可以说XML在被解析时,DOM API有着这样的认知——一个DOM树里的节点知道它在哪里和它包含了什么。 (当一个XML文档中的节点用SAX解析时只有当解析到该节点时它才有意义。)

 

绝大多数模板方案使用简单的过程语言和这样的模板标签:

 

<p>{some_text}</p>
<
p>{some_more_text}</p>

 

它们在文档中没有意义,它们代表的意义只是PHP将用其他的东西来替换它。

如果你同意这种对视图的松散描述,你也就会同意绝大多数模板方案并没有有效的分离视图和模型。模板标签将被替换成什么存放在模型中。

在你实现视图时问自己几个问题:全体视图的替换容易吗?”“实现一个新视图要多久?” “能很容易的替换视图的描述语言吗?(比如在同一个视图中用SOAP文档替换HTML文档)

 

模型(Model

 

模型代表了程序逻辑。(在企业级程序中经常称为业务层(business layer))

总的来说,模型的任务是把原有数据转换成包含某些意义的数据,这些数据将被视图所显示。通常,模型将封装数据查询,可能通过一些抽象数据类(数据访问层)来实现查询。举例说,你希望计算英国年度降雨量(只是为了给你自己找个好点的度假地),模型将接收十年中每天的降雨量,计算出平均值,再传递给视图。

 

控制器(controller

 

简单的说控制器是Web应用中进入的HTTP请求最先调用的一部分。它检查收到的请求,比如一些GET变量,做出合适的反馈。在写出你的第一个控制器之前,你很难开始编写其他的PHP代码。最常见的用法是index.php中像switch语句的结构:

 

<?php
switch ($_GET['viewpage']) {
    case 
"news":
        
$page=new NewsRenderer;
    break;
    case 
"links":
        
$page=new LinksRenderer;
    break;
    default:
        
$page=new HomePageRenderer;
    break;
}
$page->display();
?>

 

这段代码混用了面向过程和对象的代码,但是对于小的站点来说,这通常是最好的选择。虽然上边的代码还可以优化。

控制器实际上是用来触发模型的数据和视图元素之间的绑定的控件。

 

PS:本来是一个帖子的;可是死活贴不上来 -________-b 只好腰斩了

Part1 http://www.csdn.net/Develop/read_article.asp?id=21639

Part2 http://www.csdn.net/Develop/read_article.asp?id=21640

Part3 http://www.csdn.net/Develop/read_article.asp?id=21641

CodeIgniter 3.1.9:高效PHP框架的深入剖析 CodeIgniter是一个轻量级的PHP框架,它将传统MVC(模型(Model)、视图(View)、控制器(Controller)模式以高度可配置和可扩展的方式提供给开发者。它以其轻量级、高性能以及高度灵活的特点而广受欢迎,特别适合中小型企业级应用开发。CodeIgniter框架的核心在于简化代码,提供清晰的逻辑结构,从而降低项目复杂性,并提高开发效率。接下来,我们将深入探讨CodeIgniter框架的核心组件,以及它如何在实际开发中发挥作用。 阅读详情

相关推荐

原生php实现mvc模式

原生php实现mvc设计模式,类似于thinkphp框架,更有利于理解tp框架

PHP笔记-自定义MVC框架

膜拜 膜拜下黑马大佬程序员的项目,学习到了这样的手写MVC框架的方式,受益匪浅,感觉自己在C/C++和Java方面,还有许多要学习的地方,看看能不能抄下这个php自己撸一个C/C++的MVC框架。 下面记录下PHP自定义MVC框架。 项目结构 首先是项目结构: ├─app │ ├─admin │ │ ├─controller │ │ ├─model │ │ └─view │ └─home ├─config ├─core ├─public ├─resources │ └─vi

IT1995的博客 2309

使用php开发自己的MVC模式构架

使用php开发自己的MVC模式构架.pdf ),新手可以看看,认识下什么是mvc框架,对框架有个底层的认识,也能试着自己开发一个

PHP MVC模式讲解及实例

一、MVC模式流程图 二、MVC概念 (1)作用 MVC包括控制器(Controller),模型(Model),视图(View)。 控制器的作用是调用模型和 视图,将模型产生的数据传递给视图,并让视图去显示 模型的作用是获取数据并处理返回数据 ...

YICONGITSME的博客 1万+

PHPMVC设计模式1

1MVC介绍 1MVC是一个编程思想,是一种设计模式 2、思想:将一个功能分解成3个部分,M,V,C Model(模型):处理与数据有关的逻辑 View(视图):显示页面 Controller(控制器):处理业务逻辑 小结: 1、控制器用来接收请求 2、以后不能直接请求模型和视图 2、MVC演化 2.1 显示商品 1、导入products表的数据 2、将上一讲的MyPDO类拷贝到站点下,改名为MyPDO.class.php,这个文件只存放MyPDO类 3、在站点下创建index.php,代码如下

学习记录 842

描述一下PHP中的MVC设计模式

MVC模式的引入,使得应用程序的逻辑、数据和用户界面得以分离,从而提高了代码的可维护性、可重用性和可扩展性。综上所述,PHP中的MVC设计模式通过分离应用程序的逻辑、数据和用户界面,提高了代码的可维护性、可重用性和可扩展性。控制器是MVC模式中的协调者,它负责接收用户的请求,并根据请求调用相应的模型和视图来处理。通过模型层的抽象和封装,我们可以将数据的处理逻辑与视图和控制器层分离,使得代码更加清晰和易于维护。通过将数据的展示逻辑与模型和控制器层分离,视图层可以更加专注于用户界面的设计和优化,提高用户体验。

Layla_c的博客 817

PHP实现简易的MVC框架

实现MVC框架没有固定的实现方法,根据框架特色和语言特点以及自己的需求进行实现即可。

光头强的博客 7131

php mysql mvc_phpmvc(简单实现

代码目录代码下载地址:https://github.com/lpx20181019/php_advanced/tree/master/mvc代码内的MYSQLPDO.class.php是一个封装的数据库类,利用面向对象,pdo操作数据库,单例模式的知识,代码实现时简单处理没有用到这个类,有需要可以导入。实例化一个单例:require "MySQLPDO.class.php";class model...

weixin_34490905的博客 250

MVC详解

MVC与模板概念的理解  MVC(Model View Controller)模型-视图-控制器   MVC本来是存在于Deskt op程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC 的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新...

259

使用PHP5开发简单MVC系统

一,介绍单入口模式 摘要: 在这篇文章里我们将使用PHP5的标准类库构建一个简单的MVC系统 介绍 在这简文章中,我将逐步带您完成一个简单的Model-View-Controller 系统,这是开发一个大型项目所必须要了解的东西. 单一入口 关于我们的MVC系统的重要的事情之一是它将采用单入口模式。而不是每次引入很多文件. 像如下的代码: PHP代码 &l...

weixin_30294021的博客 103

MVC简介

MVC简介         MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。目录MVC与模板概念的理解MVC如何工

黑暗料理 1470

说说MVC

MVC是三个单词的缩写,分别为: 模型(Model),视图(View) 和控制Controller)MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也...

weixin_30390075的博客 164

1+1到底等于几?

题目:“1 + 1 等于几” 数学运算 用你擅长的语言基于MVC模式实现 这个,敢吗? 这是我面试别人时最常用的一个话题,多数程序员咋一听往往都是一脸懵逼:有这个必要吗? 我只能很严肃的告知:肯定有,需求总是不断变化,良好的设计可以让后期的变更更方便! 代码写多了,如果你的风格只是一成不变,套路,未免有点失败。每一次开发,我一般会尝试不同以往的写法,从各种角度去验证和实践一些基本的编程思想。 以下...

weixin_33932129的博客 1070

php车队管理系统下载,华领GPS车辆管理系统

源码介绍:原创开源 php 企业网站程序第二波,华领 GPS 车管系统网站使用了 Codeigniter 框架,实现MVC 模式。放出的代码可以免费使用,但请尽量修改界面。(已测试。)源码体积:1.14M安装说明:CodeIgniter 版本:1.6.3 工具:dw,UltraEdit(资源管理器比 editplus 好用) 一些说明 转载请保留全部信息,谢谢! 原创开源 php 企业网站程序...

weixin_39608613的博客 372

mvc传递数据 php,php – 一般在mvc …应该控制器传递数据来查看或查看应该直接从模型?...

我正在尝试学习并充分了解mvc模式,同时学习php.我决定建立基本的mvc框架,以后我可以在各种项目中使用.阅读了很多关于mvc和模型/视图/控制器之间的联系的帖子我有点迷失了.目前我的理解是,在Web应用程序控制器处理来自浏览器的请求,如果需要,调用方法模型类告诉模型来改变其状态.然后控制器实例化将负责显示界面的适当视图类.这是我不明白的一点>现在应该通过适当的模型对象来查看和查看应该在需...

weixin_26757949的博客 158

php流控系统,LiFiFl-Web流控系统V1.0开源版

前言五月月底断断续续用了一周时间开发出来了此款Web流控系统,但是由于V1.0的结构没有调整好,所以决定停止更新,现将源代码公布出来,此程序可以适用于PHP新手们查看,因为毕竟我也是新手,没有使用任何的PHP框架,只有运用了最简单的MVC模式,全局90%都是使用的Ajax,体验应该还是可以的。说明此款程序现包括如下功能:在线安装邮件验证线路添加用户管理签到认证个人中心其余的自行发掘程序截图[v_t...

weixin_42628280的博客 431

简述MVC思想与PHP如何实现MVC

什么是MVC? 简单的说就是将网站源码分类、分层。 MVC三个字母的含义: M:Model 模型,负责数据库操作。 V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。 C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。 如此说来,程序的执行顺序是C-V-M 或 C-M ,和MVC的名字正好相反。 为什么要MVC

339
上一篇: PHP:路在何方?
下一篇: MVC模式的PHP实现(2)
KBUG
博客等级 码龄24年 5粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值