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 ?>
入口文件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); ?>