PHP之简单实现MVC框架

 

1.概述

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

2.代码结构

3.代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
        //function.php 
    //控制器调用函数
    function C($name$method){
        require_once('libs/Controller/'.$name.'Controller.class.php');
        //$testController = new testController();
        //$testController->show();
        eval('$obj = new '.$name.'Controller(); $obj->'.$method.'();');
    }
 
    //模型调用函数
    function M($name){
        require_once('libs/Model/'.$name.'Model.class.php');
        eval('$obj = new '.$name.'Model();');
        return $obj;
    }
 
    //视图调用函数
    function V($name){
        require_once('libs/View/'.$name.'View.class.php');
        eval('$obj = new '.$name.'View();');
        return $obj;
    }
 
    //过滤非法值
    function daddslashes($str){
        return (!get_magic_quotes_gpc())?addslashes($str):$str;
    }
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
//test.php
/*
第一步 浏览者 -> 调用控制器,对它发出指令
第二步 控制器 -> 按指令选取一个合适的模型
第三步 模型 -> 按控制器指令取相应数据
第四步 控制器 -> 按指令选取相应视图
第五步 视图 -> 把第三步取到的数据按用户想要的样子显示出来
*/
 
require_once('View/testView.class.php');
require_once('Model/testModel.class.php');
require_once('Controller/testController.class.php');
 
$testController new testController();
$testController->show();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//testController.class.php
/*
控制器的作用是调用模型,并调用视图,将模型产生的数据传递给视图,并让相关视图去显示
*/
    class testController{
        function show(){
            /*$testModel = new testModel();
            $data = $testModel->get();
            $testView = new testView();
            $testView->display($data);*/
            $testModel = M('test');
            $data $testModel->get();
            $testView = V('test');
            $testView->display($data);
        }
    }
?>
1
2
3
4
5
6
7
8
9
10
11
<?php
//testModel.class.php
/*
模型的作用是获取数据并处理,返回数据
*/
    class testModel{
        function get(){
            return "hello world";
        }
    }
?>
1
2
3
4
5
6
7
8
9
10
11
<?php
//testView.class.php
/*
视图的作用是将获得的数据进行组织,美化等,并最终向用户终端输出
*/
    class testView{
        function display($data){
            echo $data;
        }
    }
?>

运行结果:

 
分类: PHP

PHP之简单实现MVC框架的更多相关文章

  1. AsMVC:一个简单的MVC框架的Java实现

    当初看了<从零开始写一个Java Web框架>,也跟着写了一遍,但当时学艺不精,真正进脑子里的并不是很多,作者将依赖注入框架和MVC框架写在一起也给我造成了不小的困扰.最近刚好看了一遍sp ...

  2. 自己动手写一个简单的MVC框架(第一版)

    一.MVC概念回顾 路由(Route).控制器(Controller).行为(Action).模型(Model).视图(View) 用一句简单地话来描述以上关键点: 路由(Route)就相当于一个公司 ...

  3. 自己动手写一个简单的MVC框架(第二版)

    一.ASP.NET MVC核心机制回顾 在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件. 在这个System.W ...

  4. php实现最简单的MVC框架实例教程

    本文以一个实例的形式讲述了PHP实现MVC框架的过程,比较浅显易懂.现分享给大家供大家参考之用.具体分析如下: 首先,在学习一个框架之前,基本上我们都需要知道什么是mvc,即model-view-co ...

  5. 自定义简单算法MVC框架

    什么是MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,   它是一种软件设计典范,用一种业务逻辑.数据 ...

  6. 封装简单的mvc框架

    MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式. MVC把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). PH ...

  7. 一个简单的MVC框架的实现-基于注解的实现

    1.@Action注解声明 package com.togogo.webtoservice.annotations; import java.lang.annotation.Documented; i ...

  8. 一个简单的MVC框架的实现

    1.Action接口 package com.togogo.webtoservice; import javax.servlet.http.HttpServletRequest; import jav ...

  9. PHP写一个最简单的MVC框架

    照网上看的.Framework.class.php文件是灵魂. <?php class Framework { public static function run() { //echo &qu ...

随机推荐

  1. Git 常用命令合集

    $ git init          建立git仓库(一般都是在github上新建好,直接克隆到本地) $ git clone **.git       克隆git仓库 $ git add -A   ...

  2. 命令行环境下简单实用的工具——重定向&管道

    如果你对管道和重定向应用自如了,无需继续往下看.本文虽然以windows上cmd命令行环境演示,但同样适用于Unix/Linux等平台. 引言 关于管道和重定向,最初是在刘汝佳的<算法竞赛入门经 ...

  3. 网络知识学习2---(IP地址、子网掩码)(学习还不深入,待完善)

    紧接着:网络知识学习1 1.IP地址    IP包头的结构如图 A.B.C网络类别的IP地址范围(图表) A.B.C不同的分配网络数和主机的方式(A是前8个IP地址代表网络,后24个代表主机:B是16 ...

  4. 【Java EE 学习 25 下】【网上图书商城js小技术点总结】

    1.日历控件的使用 日历控件源代码: /** * add auto hide when mouse moveout * * @version 1.0.1 * @date 2010-11-23 * @a ...

  5. OpenCv全景图像拼接

    http://my.oschina.net/xiaot99/blog/226589 http://blog.csdn.net/chenjiazhou12/article/details/2282548 ...

  6. iOS中获取各种文件的目录路径的方法

    我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4453A-B453-4ADF535345ADAF344 后面的目录4434-4453A-B453-4AD ...

  7. js函数封装

    1.随机数 <script> function rnd(n,m){ return parseInt(Math.random()*(m-n)+n); } var a=rnd(45,47); ...

  8. RabbitMQ 实例

    转载地址:http://www.cnblogs.com/yangecnu/p/4227535.html .NET 环境中使用RabbitMQ   在企业应用系统领域,会面对不同系统之间的通信.集成与整 ...

  9. [工作中的设计模式]装饰模式decorator

    一.模式解析 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的要点主要是: 1.需要对已有对象扩展新的功能,又不希望改变原有对 ...

  10. Java代码常用写法总结

    1.字符串是否为空判断 以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equal ...