PHPCMS源码分析(六) - 张大千

Datetime:2016-08-23 03:46:54          Topic: Source Code Analysis           Share
/**
 * 调用件事
 */
private function init() {
    $controller = $this->load_controller();
    if (method_exists($controller, ROUTE_A)) {
        if (preg_match('/^[_]/i', ROUTE_A)) {
            exit('You are visiting the action is to protect the private action');
        } else {
            call_user_func(array($controller, ROUTE_A));
        }
    } else {
        exit('Action does not exist.');
    }
}
                            
/**
 * 加载控制器
 * @param string $filename
 * @param string $m
 * @return obj
 */
private function load_controller($filename = '', $m = '') {
    if (empty($filename)) $filename = ROUTE_C;
    if (empty($m)) $m = ROUTE_M;
    $filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.php';
    if (file_exists($filepath)) {
        $classname = $filename;
        include $filepath;
        if ($mypath = pc_base::my_path($filepath)) {
            $classname = 'MY_'.$filename;
            include $mypath;
        }
        return new $classname;
    } else {
        exit('Controller does not exist.');
    }
}




About List