MVC模式的PHP实现(3)

PHP: 手把手编写自己的 MVC 框架实例教程 1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。   MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自... 阅读详情

最后是控制器,我们将把视图实现为一个子类。

 

<?php
/**
*  Controls the application
*/
class ProductController extends ProductView {

    
//! A constructor.
    /**
    * Constucts a new ProductController object
    * @param $model an instance of the ProductModel class
    * @param $getvars the incoming HTTP GET method variables
    */
    
function ProductController (&$model,$getvars=null) {
        
ProductView::ProductView($model);
        
$this->header();
        switch ( 
$getvars['view'] ) {
            case 
"product":
                
$this->productItem($getvars['id']);
                break;
            default:
                if ( empty (
$getvars['rownum']) ) {
                    
$this->productTable();
                } else {
                    
$this->productTable($getvars['rownum']);
                }
                break;
        }
        
$this->footer();
    }
}
?>

 

注意这不是实现MVC的唯一方式——比如你可以用控制器实现模型同时整合视图。这只是演示模式的一种方法。

 

UML for "Products" MVC Pattern


我们的index.php 文件看起来像这样:

<?php
require_once('lib/DataAccess.php');
require_once(
'lib/ProductModel.php');
require_once(
'lib/ProductView.php');
require_once(
'lib/ProductController.php');

$dao=& new DataAccess ('localhost','user','pass','dbname');
$productModel=& new ProductModel($dao);
$productController=& new ProductController($productModel,$_GET);
echo 
$productController->display();
?>

 

漂亮而简单。

我们有一些使用控制器的技巧,在PHP中你可以这样做:

 

$this->{$_GET['method']}($_GET['param']);

 

一个建议是你最好定义程序URL的名字空间形式(namespace),那样它会比较规范比如:

"index.php?class=ProductView&method=productItem&id=4"


通过它我们可以这样处理我们的控制器:

 

$view=new $_GET['class'];
$view->{$_GET['method']($_GET['id']);

 

有时候,建立控制器是件很困难的事情,比如当你在开发速度和适应性之间权衡时。一个获得灵感的好去处是Apache group 的Java Struts,它的控制器完全是由XML文档定义的。

 

@ 完整程式

 

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

Part1 http://www.youkuaiyun.com/Develop/read_article.asp?id=21639

Part2 http://www.youkuaiyun.com/Develop/read_article.asp?id=21640

Part3 http://www.youkuaiyun.com/Develop/read_article.asp?id=21641

基于Multisim的智能交通灯控制系统仿真与实现(含动态闪烁功能) 本文详细介绍了基于Multisim的智能交通灯控制系统仿真与实现,重点解析了动态闪烁功能的电路设计。通过555定时器、74LS192计数器和JK触发器等核心模块,实现了主干道与支干道的交替通行及黄灯1Hz闪烁功能,为交通灯控制系统设计提供了完整的仿真方案。 阅读详情

相关推荐

ADS2016子电路封装避坑指南:手把手教你制作可复用的自定义Symbol

本文详细介绍了在ADS2016中制作可复用的自定义Symbol的全流程,重点解析了子电路封装的常见问题与解决方案。从电路模块的标准化处理、Hierarchy创建技巧到Symbol视觉优化和库管理策略,帮助工程师提升射频与微波电路设计效率。特别针对Symbol比例适配和引脚优化等核心问题,提供了实用的避坑指南和工程验证方法。

weixin_30275415的博客 212

PHP实现简易的MVC框架

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

光头强的博客 7139

深入瑞芯微SDK:手把手解析Uboot、Kernel到Rootfs的镜像生成与烧录

本文深入解析瑞芯微SDK中从Uboot、Kernel到Rootfs的镜像生成与烧录全流程,揭示编译背后的技术细节。通过详细分析SDK架构、镜像生成流水线、分区表定制、Rootfs构建及烧录科学,帮助开发者从会编译进阶到懂原理,掌握系统级开发的关键技术。

weixin_29193359的博客 270

PHP之简单实现MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

狼魂之力 1017

JMeter压测Dubbo接口的完整落地方案(适配3.x)

Dubbo作为主流Java微服务RPC框架,其接口压测长期面临协议私有、注册发现复杂、序列化耦合度高等技术门槛。理解Dubbo基于TCP长连接、泛化调用与SPI扩展机制的核心原理,是实现稳定压测的前提;技术价值在于绕过HTTP网关直击服务核心链路,保障大促等关键场景的性能可信度;典型应用场景包括电商订单链路压测、风控/库存等内部Dubbo服务SLA验证,以及CI/CD中性能左移实践。本文聚焦Dubbo 3.x版本,提供零第三方插件、可复用、避坑的JMeter Java Sampler落地路径。

weixin_33700809的博客 550

MCU 微控制器,在实际项目中如何选型(以 STM32为例)

1.MCU 选型需要考虑的一些因素 2.案例:传感器设备的 MCU 选型

创享 AIOT 的专栏 1万+

PHP MVC框架初探

前言 下面准备审一下Yii、laravel、tp,但这些框架都是基于MVC模式的,所以先简单了解下MVC模式。 MVC是什么 MVC(Model-View-Controller)是软件工程的一种软件架构模式。 在MVC模式设计下,软件系统被分来三个模块:模型(Model)、视图(VIew)、控制器(Controller)。 Model(模型):是应用程序中用于处理应用程序数据逻辑的部分,通常负责与数据库直接进行 curd 的交互。 View(视图):是应用程序处理数据显示的部分,通过将处理好的数据进

Sentiment的博客 1861

vue3+element-plus - 最新详细实现将表格Table组件 “所见所得导出“ 为excel(xls/xlsx)电子表格文件,表格中的图片图像、图标等媒体资源完美导出显示(详细示例代码)

vue3,nuxt3,element plus,表格组件,Table,el-table,导出,下载,excel,电子工作簿,xls,xlsx,将表格导出成xls,如何把表格原封不动的导出成excel,保留图片,带图片,图标,如何导出包括含有图片的Excel表格,图片和表格数据导出excel,把表格导出成excel格式,表格内的图片一起导出,vue3导出图片和数据到Excel,可导出图片,导出图像到Excel,网页上的图片怎么能导出到xls表格中,显示图片url链接,图片太多导出失败,图片会超出单元格,图片不

✅ 精选推荐文章 4766

PHP简单MVC架构

由于需要搭建一个简单的框架来进行API接口开发,所以简单的mvc框架当然是首选.最原始,最简洁的mvc框架.下面来介绍下.         一. 项目目录结构: app  |-controller    存放控制器文件  |-model        存放模型文件  |-view        存放视图文件     core |-lib        存放自定义类库  |-conf

Sara的专栏 3万+

【时时三省】tessy 集成测试 总论

序论不积跬步无以至千里,不积小流无以成江海。正文。

时时三省的博客 1147

杰理AC696N使用ADC检测电位器调音量教程

本教程详细介绍了在杰理AC696N芯片上使用ADC功能检测电位器电压值的方法。主要内容包括:硬件连接方式(电位器VCC/OUT/GND分别接3.3V、PA3引脚和地线),10位ADC配置(0-1023对应0-3.3V),以及核心代码实现。关键步骤涉及ADC采样通道初始化、GPIO引脚配置(关闭数字输入和上下拉电阻),以及通过定时器实现50Hz采样频率。教程还详解了ADC值到系统音量的线性映射算法,并提供了完整的代码示例和调试方法,帮助开发者实现电位器实时控制音量的功能。

qq_42014563的博客 1245

针对金山可信云安全疑点解惑

套用别人一句话:新技术革新到来之时,总会面对传统思维的各种质疑。金山毒霸可信云安全计划实施4年来,同样面临业界各种不同的声音。有人直接在围 脖中说,云安全都是骗人的,而他们从来不也去真的审视这个正在发生剧变的安全世界。 在围脖、在论坛、在博客,我们看到各种各样关于云安全体系的见解和 说法,我们非常兴奋地发现有一批普通的网友对金山可信云安全寄于厚望,他们兴奋地憧憬着云安全的未来,面向他的朋友介绍着...

weixin_34050519的博客 124

lammps案例:Cu三点弯曲模拟

大家好,我是小马老师。 本文分享一个Cu弯曲的案例。 本案例参考三点弯曲实验,三点弯曲试验是将试样放在弯曲装置上,在试样上加载进行弯曲试验,直到达到规定的弯曲程度或发生断裂。 模拟原理是在z方向固定两侧端点,在x和y方向不固定,模拟左右两个支撑点,中间压块向下运动实现弯曲。 初始结构: 运行结果为: 模拟的重点是使用fix setforce命令压住左右两端,使其不能沿z轴上下移动,但是又不能在xy方向限制其移动。 压块的运动方式比较简单,给其一个下压的速度即可。 为防止压块变形,使用setforce命

lammps_jiayou的博客 2279

php mvc框架的理解

PHP MVC框架是遵循MVC设计模式的一类库或工具集合,用于简化Web应用程序的开发过程。这些框架提供了一种结构化的方式来组织代码,并且通常包含一系列的功能,比如数据库抽象层、模板引擎、用户认证等,从而让开发者可以专注于业务逻辑而不是底层的技术细节。定义MVC组件模型(Model):代表数据结构。它处理与数据库相关的所有事情,如存储、检索和更新数据。视图(View):负责展示信息给用户。它是应用程序的外观,即用户看到并与其交互的部分。控制器(Controller):作为模型和视图之间的桥梁。

x3088的博客 730

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PHP中的MVC设计模式是如何实现的?

通过以上方法,PHP中的MVC设计模式能够有效地分离应用程序的各个部分,使代码更加模块化和易于维护。无论是使用现成的框架还是手动构建MVC结构,关键在于明确每个部分的职责并确保它们之间的良好协作。

破损的天堂鸟博客 1558

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

php之mvc设计模式的原理和实现

一、MVC设计模式概述 1.什么是MVC设计模式 2. MVC设计模式的优势和缺点 二、 MVC典型实现 1.模型    数据库操作类    模型类 2.控制器    模块    控制器类 3.视图 4.前端控制器(入口文件) 一、MVC设计模式概述 1.什么是MVC设计模式 MVC是Xerox PRAC(施乐帕克研究中心)在80年代为编程语言 Smalltalk-80发明的一种软件设计模式,...

咖啡味的小认真 2351

【PHP】简单的MVC实例

总结的来说就是,用户通过入口文件访问控制器,控制器访问模型获取数据,最后将数据显示在视图中反馈给用户。

Morliasde的博客 4181

【PHP】thinkPHP6中的MVC思想的小案例

最近在给学生讲课时候,想找个最简单thinkphp框架案例,来给学生们演示一下MVC思想的具体应用,但从网上找了好久,仍旧没有找到一个满意的案例。没办法,自己只能结合thinkphp6的官方文档动手写了一个简单的demo,以便在上课时候,能够让学生快速理解MVC的思想应用,增强动手能力。由于thinkphp框架主要是基于MVC思想的,所有,本演示demo对thinkphp初学者来说,也是一个非常好的应用案例。

【安歌er】的博客 1562

PHP MVC模式讲解及实例

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

YICONGITSME的博客 1万+

什么是MVC(模型-视图-控制器)模式?在PHP中如何实现它?

MVC(模型-视图-控制器)模式是一种软件设计模式,用于将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。每个组件有不同的职责,协同工作以实现清晰的代码结构和分离关注点。在实际的应用中,可能会使用框架来更方便地实现MVC模式,比如使用 Laravel、Symfony、CodeIgniter 等框架。这些框架提供了一些工具和规范,帮助开发者更容易地组织和管理代码。

周祥平程序专栏 724

PHP代码审计之MVC与ThinkPHP简介

今天继续给大家介绍渗透测试相关知识,本文主要内容是PHP代码审计之MVC与ThinkPHP简介。 一、MVC简介 二、ThinkPHP简介

永远是少年 2210

深入PHP框架中的MVC模式:构建可维护和可扩展的Web应用

模型(Model):负责数据和业务逻辑。视图(View):负责展示数据(模型)给用户。控制器(Controller):负责接收用户输入并调用模型和视图去完成用户的请求。

2401_85702623的博客 1071

PHP8 MVC 高级教程(二)

我们已经讨论了 MVC 的大部分“视图”部分,我们将在下一章深入探讨模型部分。在本章中,我们将创建我们的第一个控制器。有许多方法可以组织应用,并将普通代码与业务逻辑分开。在这上面花很多时间很诱人,但这不是本书或本章的目的。相反,我建议你看一看马蒂亚斯关于这个主题的书。控制器更多地由它们不应该包含的代码定义,而不是由它们应该包含的代码定义——至少如果你问 Twitter 或 Reddit:"控制器不应该包含应该在浏览器中显示的代码,比如 HTML 和 CSS . "

龙哥盟 1155

【PHP开发那些事儿】MVC架构基础

实际开发中,通常用控制器对客户端的请求数据进行封装(如将form表单发来的若干个表单字段值,封装到一个实体对象中),然后调用某一个模型来处理此请求,最后再重定向到视图(或另一个控制器)。2.Controller(控制层):可以理解为一个分发器,用来决定对于视图发来的请求,需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图。需要注意的是:MVC架构中,模型层中的模型可以相互调用,如果引入了业务层,我们会允许业务层可以相互调用。控制层不可以相互调用。模型接受视图数据的请求,并返回最终的处理结果。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值