PHP之简单实现MVC框架

1.概述

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

2.代码结构

3.代码实现

<?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;
    }
?>
<?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();
?>
<?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);
        }
    }
?>
<?php
//testModel.class.php
/*
模型的作用是获取数据并处理,返回数据
*/
    class testModel{
        function get(){
            return "hello world";
        }
    }
?>
<?php
//testView.class.php
/*
视图的作用是将获得的数据进行组织,美化等,并最终向用户终端输出
*/
    class testView{
        function display($data){
            echo $data;
        }
    }
?>

 运行结果:

时间: 2024-09-17 16:45:48

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

PHP简单的MVC框架实现方法_php实例

在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中. 1.概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 2.代码结构 3.代码实现 <?ph

PHP的MVC模式实现原理分析(一相简单的MVC框架范例)_php实例

他们的工作原理大家应该也比较感兴趣,下面我说说一个mvc框架长什么样. 路由机制 在互联网我们都是通过url提供服务,因此不同的url有不同的服务.用户访问不同的页面也就获得了不同的服务.那么我们的服务是如何通过url来区分不同的服务呢. 我们的web程序就要通过url寻找到不同的文件,进行不同的业务逻辑处理.我们的路由机制就是根据url,寻找到对应的controller,和action,然后由action进行具体的业务逻辑处理. 一个简单的controller 复制代码 代码如下: //定义一

php实现最简单的MVC框架实例教程_php技巧

本文以一个实例的形式讲述了PHP实现MVC框架的过程,比较浅显易懂.现分享给大家供大家参考之用.具体分析如下: 首先,在学习一个框架之前,基本上我们都需要知道什么是mvc,即model-view-control,说白了就是数据控制以及页面的分离实现,mvc就是这样应运而生的,mvc分为了三个层次,而且三个层次各司其职,互不干扰,首先简单介绍下,各个层次:view即是视图,也就是web页面,control即是控制器 向系统发出指令的工具,model 简单说是从数据库中取出数据进行处理. MVC的工

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

 首先,在学习一个框架之前,基本上我们都需要知道什么是mvc,即model-view-control,说白了就是数据控制以及页面的分离实现,mvc就是这样应运而生的,mvc分为了三个层次,而且三个层次各司其职,互不干扰,首先简单介绍下,各个层次:view即是视图,也就是web页面,control即是控制器 向系统发出指令的工具,model 简单说是从数据库中取出数据进行处理. MVC的工作流程如下: 1. 浏览者->调用控制器,对此发出指令 2. 控制器->按指令选取一个合适的模型 3. 模型

lua开发中实现MVC框架的简单应用_Lua

       先简单说说MVC,即Model View Controller.Model(模型),一般负责数据的处理:View(视图),一般负责界面的显示:Controller(控制器),一般负责前端的逻辑处理.拿一款手机游戏来说,界面UI的显示.布局等就是View负责:点击了按钮,手势的滑动等操作由Controller来处理:游戏中需要的数据资源就交给Model.        接下来,看看在游戏开发中怎么用,这里用Lua(环境使用cocos code ide)给大家说说.        先来

.NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比

在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)--初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比有什么不同,哪个更好?Nancy是否可以脱离IIS等等,那么今天就拿MVC和Nancy做个简单的对比吧!首先说一点,我对MVC研究并不深入,如有没说到或说错的地方,还请大家补充和纠正. 下面纠正一个问题,Nancy官网并没有明确的说Nancy是一个MVC框架,官方的定义是:Nancy是一个用于构建基

基于MVC框架+IOC+Rhino Mocks的一个简单项目介绍

现在不管是企业还是科研机构,几乎所有的项目开发都是遵循一定的框架,将经过实践证明过的开发 框架和开发模式借鉴使用无可厚非,但难免会遇到某些功能实现或者基于某种考虑当前的开发框架无法达 到这样的目的.这时我们就会考虑不同技术的融合. 我们现在正在开发的平台项目正是借鉴了这样的思想,我们的平台项目首先整体的开发框架使用了 AspNet MVC框架:其次数据访问层套用了CommunityServer的开发框架,其中融合了Provider模式和传统 的三层架构:而在业务逻辑层处理中,为了保证代码的可重用

Struts VS Spring 两种MVC框架比较

比较 基于Web的MVC framework在J2EE的世界内已是空前繁荣.TTS网站上几乎每隔一两个星期就会有新的MVC框架发布.目前比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spring MVC.Tapestry.JSF等.这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica.VRaptor等.这些框架都提供了较好的层次分隔能力.在实现良好的MVC 分隔的基础上,通过提供一些现成的辅助类库,同时也促进了生产效率的提高. 如何选择

基于ASP.NET2.0的非HttpModule山寨版MVC框架的实现

在ASP.Net MVC框架中是使用地址拦截的,虽然很好用,但是装起来太大了,配置也麻烦.本文通过代码实践,在ASP.Net2.0框架下实现一套简易的MVC框架.MVC框架难于构建的地方在于Controller与View的分离以及分离后数据可以方便地传输.为了保持代码的简洁,将使用ashx文件作为Controller,用aspx页面作为View. 讲起来比较费劲,把项目文件放上来,而下面只作一个简单的说明.项目是VS2008的项目,大小15K. 下载地址:DotNetMVC.rar 首先构建一个