• 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;
    		}
    	}
    ?>
    

     运行结果:

  • 相关阅读:
    抽象工厂模式
    工厂方法模式
    简单工厂模式
    多例模式
    深入分析 Java 中的中文编码问题
    PipedInputStream和PipedOutputStream详解
    单例模式
    Java IO和NIO文章目录
    wsdlLocation可以写成项目的相对路劲吗
    ssh框架配置事务管理器
  • 原文地址:https://www.cnblogs.com/chars/p/5006250.html
Copyright © 2020-2023  润新知