<?php
class Dispatcher extends Action {
private $url;
private $config;
function __construct(){
$this->routerCheck();
}
function routerCheck(){
global $config;
$this->config=$config;
$suffix=$this->config['URL_HTML_SUFFIX'];
$paths = (array_filter(explode('/',trim(preg_replace('/.'.$suffix.'$/','',$_SERVER['PHP_SELF']),'/'))));
if ($this->config['URL_PATHINFO_MODEL']==1){
define('__URL__','/'.$paths[0].'/');
}elseif ($this->config['URL_PATHINFO_MODEL']==2){
define('__URL__','/');
}
if (empty($paths[1])){
$paths[1]='index';
}
if (empty($paths[2])){
$paths[2]='index';
}
if (empty($paths[3])){
$paths[3]='index';
}
$this->Action($paths);
}
function Action($paths){
if ($paths[1]==$this->config['TMPL_ADMIN_PATH']){
include APP_PATH.'/'.$this->config['TMPL_ADMIN_PATH'].'/commonAction.php';
$A=APP_PATH.'/'.$paths[1]."/".$paths[2]."Action.class.php";
$b=$paths[2];
@$c=$paths[3];
}else {
$A=APP_PATH."/Action/".$paths[1]."Action.class.php";
$b=$paths[1];
$c=$paths[2];
}
if (is_file($A)){
include $A;
$action=$b."Action";
@$controller = new $action();
if(method_exists($controller, $c)){
$controller->$c();
}else {
exit('方法不在');
}
}else {
exit('类不在');
}
}
function pathinfo(){
$pathinfo=(array_filter(explode('/',$this->url)));
$count=count($pathinfo);
for($foo=1;$foo<$count;$foo+=2){
$_GET[$pathinfo[$foo]]=($foo+2)==$count?array_shift(explode('.',$pathinfo[$foo+1])):$pathinfo[$foo+1];
}
}
function Reorder($array){
$i=0;
foreach ($array as $row){
$a[$i++]=$row;
}
return $a;
}
function __destruct(){
}
}