+ -
当前位置:首页 → 问答吧 → 这样子做多入口MVC框架,怎么样???

这样子做多入口MVC框架,怎么样???

时间:2009-12-29

来源:互联网

把每个控制器作为入口点,控制器的构造函数执行相应的初始化与全局变量的定义

复制代码
  1. <?php
  2. class Controller
  3. {
  4.  public function __construct($type,$method,$value)
  5.  {
  6.   // include("index.php")   简单的初始化
  7.   
  8.   switch ($type)
  9.   {
  10.    case "新闻类型":
  11.     ;// include("新闻类型配置.php") ;break;
  12.    
  13.    case "论坛类型":
  14.    ; // include("论坛类型配置 .php") ;break;
  15.    
  16.    case "商城类型":
  17.     ;// include("商城类型配置 .php") ;break;
  18.   }  
  19.   $this->$method($value);  //根据相应URL执行相应的函数 显示页面
  20.  }
  21.   // controller code here
  22. }
  23. class Homepage extends Controller             //使用者继承控制器 做自己的网页
  24. {
  25.  public function __construct($type,$method,$value)    //继承父类的构造函数
  26.  {
  27.   parent::__construct($type,$method,$value);
  28.  }
  29.  public function index($value)            //使用者写的某个页面
  30.  {
  31.   echo $value;
  32.  }
  33. }
  34. $homepage=new Homepage("新闻类型",$_GET["method"],$_GET["value"]);  //显示对应页面
  35. ?>


假设控制器文件名为homepage.php ,那么
URl为  www.XXX.com/homepage.php?method=index&value=1
那么就会执行上面 $homepage->index(1) 的函数显示相应页面。
通过pathinfo重写URL 可以变为 www.XXX.com/homepage.php/index/1

因为怎个作用域都在控制器的构造函数里面 所以载入的配置也不会有因作用域限制而无效的情况出现。。。

不知道这个想法怎么样,在下小白 - -!!!

[ 此帖被zztnamed在2009-12-29 13:40重新编辑 ]

作者: zztnamed   发布时间: 2009-12-29

这个相比单入口框架 ,就是每次写一个控制器文件的时候,都要自己实例化一次。
根据实例化时构造函数 传入的第一个参数 可以执行不同的实例化 配置。。。~~

作者: zztnamed   发布时间: 2009-12-29

刚刚发现一个问题,要是全部在类的构造函数里面操作,那预定义的全局变量都要传进去。。。
哎,还是很麻烦哦。。。。。。。。

作者: zztnamed   发布时间: 2009-12-29