一个类似CI框架的URL路由


结合了phpcms和CI框架的灵感,于是就诞生这个URL路由,URL路由可直接实现apache的URL重写模块,对搜索引擎更加友好,CI框架使用的是query_string,而我这里使用的是path_info

class route{
    private $url;

    /**
     *
     */
    public function __construct(){
        $this->url = isset($_SERVER['PATH_INFO'])?  explode('/',my_addslashes(ltrim(trim($_SERVER['PATH_INFO']),'/'))):false;
        $this->Get_M();
        $this->Get_C();
        $this->Get_A();
        if($this->url)$this->Get_get();
    }

    /**
     * 定义模块
     */
    private function Get_M(){
        $this->core('R_M',$this->url[0],base::load_config('route','m'));
    }

    /**
     * 定义控制器
     */
    private function Get_C(){
        $this->core('R_C',$this->url[1],base::load_config('route','c'));
    }

    /**
     * 定义方法
     */
    private function Get_A(){
        $this->core('R_A',$this->url[2],base::load_config('route','a'));
    }

    /**
     * $_GET合并
     */
    private function Get_get(){
        $_GET = array_merge($_GET,$this->url);
    }

    /**
     * 核心判断
     * @param $module
     * @param $input_module
     * @param $default
     */
    private function core($module,$input_module,$default){
        $a = isset($input_module)? true:false;
        if($a){
            define($module,$input_module);
            unset($this->url[2]);
        }else{
            define($module,$default);
        }
    }
}



你可能感兴趣的:(一个类似CI框架的URL路由)