<?php 
/*******************************************************************
 * 版权协议：2009-2019
 * 版权所有: PHP-北京金南曦网络技术有限公司旗下PHPWMS，PHP商城系统技术支持中心http://www.php188.net，并保留所有权利。 
* PHP商城系统网址: http://www.php188.com
 * PHPWMS系统网址：http://www.phpwms.com
 * 销售电话：010-87875088
 * 销售电话：010-87875188 
*------------------------------------------------------------------
 * 这不是一个完全免费软件！您只能在不用于商业目的的前提下对程序代码进
 * 行修改和使用；不允许对程序代码以任何形式任何目的的再发布。
 *------------------------------------------------------------------
 * 文件名称：phpwms.fronted.php
 * 摘    要：前端总控制器
 * 适用范围：PHPWMS 1.0
 * 版    本：1.0
 *------------------------------------------------------------------
 * Script Written By phpwms项目组
 * 最后更新： 2009-09-24 phpwms 由PHP金南曦网络技术有限公司整理发布
 *******************************************************************/
if(!defined('IN_SYS')) {exit('php188');}
/**
 * 前端控制器
 */
class fronted{
	private static $_instance = __CLASS__;
	private $_msg = '';
	public static  function getInstance(){
		return self::$_instance = is_object(self::$_instance)?self::$_instance:new self::$_instance();
	}
	function run(){
		$query_string = $_SERVER['QUERY_STRING'];
		$query_string = empty($query_string)?'default_wms':$query_string;
		$query = array_shift(array_filter(explode('-',array_shift(array_filter(explode('.',$query_string))))));
		$model = empty($query) || is_null($query)?'default_wms':str_replace(array('/','\\','?','.'),'',$query);
		$args = array_filter(explode('_',$model));
		if(empty($args)){
			$args[0] = 'default';
			$args[1] = 'wms';
		}
		$arg = array_filter(explode('@',$args[0]));
		$action = isset($args[1])?$args[1]:'wms';
		$ext = '_WMS';
		if(count($arg)>1){//两个
			$require_file = PUB_MODEL_PATH.$arg[0].'/'.'phpwms.'.$arg[1].'.php';
			$class_name = $arg[1].$ext; 
		}else{
			$require_file = PUB_MODEL_PATH.$args[0].'/'.'phpwms.'.$args[0].'.php';
			$class_name = $args[0].$ext;
		}
		if(!file_exists($require_file) || !is_file($require_file)){
			$this->_exception('not exist the file '.str_replace(PUB_MODEL_PATH,'',$require_file));
		}
		require $require_file;
		if(!class_exists($class_name))$this->_exception('not exist class <b>'.$class_name.'</b>');
		$run = new $class_name();
		$actions = $action.'Action';
		if(!in_array($actions,get_class_methods($class_name))){
			$run->wmsAction();
		}else{
			$run->$actions();
		}
	}
	private function _exception($msg){
		$this->_msg = $msg;
		require PUBLIC_ROOT.'exception.php';
		exit(); 
	}
}
?>