0

0

php中的MVC模式运用

php中文网

php中文网

发布时间:2016-05-22 18:35:50

|

1069人浏览过

|

来源于php中文网

原创

首先我来举个例子:一个简单的文章显示系统简单期间,我们假定这个文章系统是只读的,也就是说这个例子将不涉及文章的发布,现在开始了。由于只涉及数据库的读取,所以我定义了两个

interfaceInterfaceDataOperation {
    public function select($info);
    public function selectNum($info);
}

上面这interface定义了读取数据的接口,select方法将返回所需要的文章。selectNum方法返回文章的总数,这是分页显示时用到的。 $info是一个数组, 用来存放查询条件

Interface DataSource {
    public static function getInstance();
}

这里我们假定我们操作的是数据库, DataSource定义一个接口, 所有实现该接口的实例类将得到一个静态对象

Interface Controller {
    public function pop();
    public function push();
    public function execute();
}
Interface View {
    public function display();
}

好了, 我们来实现 . 下面定义一个类来实现DataSource接口, 这个类运用了单例模式class DataBaseSource

implements DataSource {
    public static $instance = null;
    public static function getInstance() {
        if (self::$instance == null) {
            self::$instance == new PDO("mysql:host=localhost;dbname=article", "root", "123456");
        }
        return self::$instance;
    }
}

定义一个抽象类来实现DataOperation, 我们要共享一个数据库连接, 所以我在抽象类中将这个数据库对象初始化, 这样, 所有的子类都能共享这个对象

立即学习PHP免费学习笔记(深入)”;

abstract class DataBaseOperation implements DataOperation {
    protected $db = null;
    public function __construct() {
        $this->db = DataBaseSource::getInstance();
    }
    public function select($info);
    public function select($info);
}

下面我来写一个业务子类来实现抽象类

DataBaseOperationclassTech extends DataBaseOperation {
    public function select($info) {
        //在这里实现你的代码
        
    }
    public function selectNum($info) {
        //在这里实现你的代码
        
    }
}

业务逻辑层我们实现了, 下面是控制层

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

下载
class ViewController implements Controller {
    private $mod = array();
    public function push($key, $value); {
        //实现你的代码,将类注册进$this->mod;
        
    }
    public function pop($key) {
        //实现你的代码,将$this->mod[$key]值为null;
        
    }
    public function execute($key) {
        //在这里实现你的代码,生成实例.注意利用php5新的特性,异常的处理
        
    }
}

好了, 下面是表现层, 这里将实现

Interface ViewabstractArticleView implements View {
    protected $smarty = null;
    public function __construct() {
        $this->smarty = new Smarty();
        ///
        下面你可以定义smarty的一些属性值
    }
}

具体的页面, 例如科技文章的显示页面

class TechArticleView extends ArticleView {
    public function display() {
        //
        实现你的代码, 调用Tech类和更多的DataBaseOperation子类
    }
}

好了, 下面是总入口index.php

try {
    $viewController = new ViewController();
    $viewController->push("tech", TechArticleView);
    //
    持续的增加 $mod = $_GET['mod']:
$_GET['mod']:
$_POST['mod'];
//
最后 $viewController->execute($key);
}
catch(Exception $e) {
    //如何处理异常就是你的事了
}

        


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号