Ejemplo n.º 1
0
function dispatch($control, $action)
{
    global $__core_env;
    if ($__core_env[$control . ':' . $action] == 1) {
        __dispatch_exit("control=" . $control . " action=" . $action . " 被重复执行");
        return "";
    }
    $__core_env[$control . ':' . $action] = 1;
    $pos = strrpos($control, '/');
    if (false === $pos) {
        $control_name = $control;
    } else {
        $control_name = substr($control, $pos + 1, 100);
    }
    load_ctl($control);
    $control_name[0] = strtoupper($control_name[0]);
    $class = $control_name . 'Control';
    if (!class_exists($class)) {
        __dispatch_exit($class . '  控制器无效');
    }
    if (substr($action, 0, 1) == '_') {
        __dispatch_exit($class . ' 控制器的 ' . $action . ' 该事件被禁止访问');
    }
    $inst = new $class();
    if ($inst && method_exists($inst, $action)) {
        $result = $inst->{$action}();
    } else {
        __dispatch_exit($class . ' 控制器的 ' . $action . ' 事件不存在');
    }
    return $result;
}
Ejemplo n.º 2
0
/**
 * Controller调用
 */
function ctlcall($module, $method, $args = array())
{
    //加载控制器接口文件
    $module = str_replace(array('-'), array('/'), $module);
    load_ctl($module);
    $pos = strrpos($module, '/');
    $class = $module;
    if (false !== $pos) {
        $class = substr($class, $pos + 1, 100);
    }
    $class[0] = strtoupper($class[0]);
    $className = $class . "Control";
    return BaseCall("ctl", $className, $method, $args);
}