MVC入口程序 | 简单调用及实例化

入口程序:

现在大多采用单一入口机制,单一入口就是指在一个web应用程序中,所有的请求都指向一个脚本文件。通俗点说就是一幢大楼只有一个大门入口可以进去...

目录:

建立一个控制器/模型/视图调用函数,这样在入口文件内就可以直接调用他们的函数名使用,函数名取他们(控制器/模型/视图 )的首字母,他们的函数有较小一点差别,以代码为准

functoin C(控制器的名字,执行方法){

  1、把控制器引入require_once('/libs/controller/'.控制器的名字.'Controller.class.php');

  2、实例化控制器

  3、调用控制器里的方法 eval('$obj = new '.控制器的名字.'Controller();$obj->'.执行方法.'();');

  采用PHP内置函数eval(),把字符串转换成可执行的php语句,但是eval()函数调用简单,但是不安全,可用以下代码代替

  $controller=$name.'controller';

  $obj=new $controller();

  $obj->$method();

}

调用函数function.php内

 1 <?php
 2     function C($name, $method){
 3       require_once('/libs/controller/'.$name.'Controller.class.php');
 4         eval('$obj = new '.$name.'Controller();$obj->'.$method.'();');
 5     }
 6 
 7     function M($name){
 8         require_once('/libs/Model/'.$name.'Model.class.php');
 9         eval('$obj = new '.$name.'Model();');
10         return $obj;
11     }
12     
13     function V($name){
14         require_once('/libs/View/'.$name.'View.class.php');
15         eval('$obj = new '.$name.'View();');
16         return $obj;
17     }
18     
19     function ORG($path, $name, $params=array()){
20         require_once('libs/ORG/'.$path.$name.'.class.php');
21         $obj = new $name();
22         if(!empty($params)){
23         foreach($params as $key=>$value){
24                 $obj->$key = $value;
25             }
26         }
27         return $obj;
28     }
29 
30     
31     function daddslashes($str){
32         return (!get_magic_quotes_gpc())?addslashes($str):$str;
33     }
34 
35 ?>
function.php

入口文件index.php

<?php
    require_once('function.php');
    require_once('config.php');
    $view = ORG('Smarty/', 'Smarty', $viewconfig);
    $controller = $_GET['controller'];
    $method = $_GET['method'];
    C($controller, $method);
?>
index.php

 

原文地址:https://www.cnblogs.com/lpshan/p/4414413.html