/** * 应用程序执行 * * * @return null */ public static function execute() { if (zotop::modules(ZOTOP_MODULE) === null || (int) zotop::modules(ZOTOP_MODULE, 'status') < 0) { msg::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到模块,模块可能尚未安装或者已经被禁用?</h2>'), 'detail' => zotop::t('模块名称:{$module}', array('module' => ZOTOP_MODULE)))); } //controller classname $controllerName = ZOTOP_MODULE . '_controller_' . ZOTOP_CONTROLLER; $controllerPath = ZOTOP_MODULE_PATH . DS . ZOTOP_GROUP . DS . ZOTOP_CONTROLLER . '.php'; if (!class_exists($controllerName, false)) { if (!zotop::load($controllerPath)) { msg::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到控制器,请检查控制器文件是否存在?</h2>'), 'detail' => zotop::t('文件名称:{$file}', array('file' => $controllerPath)))); } } if (class_exists($controllerName, false)) { //实例化控制器 $controller = new $controllerName(); //调用__execute方法 $controller->execute(ZOTOP_ACTION, application::arguments()); } else { msg::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到控制器类,请检查控制器文件中是否存在控制器类?</h2>'), 'detail' => zotop::t('类名称:{$className}', array('className' => $controllerName)))); } }
/** * 应用程序执行 * * * @return null */ public static function execute() { if (zotop::module(application::module()) === null || (int) zotop::module(application::module(), 'status') < 0) { msg::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到模块,模块可能尚未安装或者已经被禁用?</h2>'), 'detail' => zotop::t('模块名称:{$module}', array('module' => application::$module)))); } define('ZOTOP_MODULE', application::module()); define('ZOTOP_MODULE_PATH', zotop::module(application::module(), 'path')); define('ZOTOP_MODULE_URL', zotop::module(application::module(), 'url')); $controllerPath = ZOTOP_MODULE_PATH . DS . ZOTOP_APPLICATION . DS . application::controller() . '.php'; if (zotop::load($controllerPath)) { } elseif (zotop::load(ZOTOP_MODULE_PATH . DS . ZOTOP_GROUP . DS . 'default.php')) { $controllerPath = ZOTOP_MODULE_PATH . DS . ZOTOP_GROUP . DS . 'default.php'; application::$arguments = array_merge(array(application::$controller), array(application::$action), application::$arguments); application::$controller = 'default'; application::$action = ''; } else { zotop::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到控制器,请检查控制器文件是否存在?</h2>'), 'detail' => zotop::t('文件名称:{$file}', array('file' => $controllerPath)))); } define('ZOTOP_CONTROLLER', application::controller()); $class = application::module() . '_controller_' . application::controller(); if (class_exists($class, false)) { //实例化控制器 $controller = new $class(); if (!method_exists($controller, 'action' . ucfirst(application::action()))) { if (strlen(application::action()) > 0) { application::$arguments = array_merge(array(application::$action), application::$arguments); } application::$action = $controller->action; } define('ZOTOP_ACTION', application::action()); if (method_exists($controller, 'action' . ucfirst(application::action()))) { zotop::run("system.execute.before"); call_user_func_array(array($controller, 'action' . ucfirst(application::action())), application::arguments()); zotop::run("system.execute.after"); } else { call_user_func_array(array($controller, '__empty'), array(application::action(), application::arguments())); } } else { zotop::error(array('title' => '404 error', 'content' => zotop::t('<h2>未能找到控制器类,请检查控制器文件中是否存在控制器类?</h2>'), 'detail' => zotop::t('类名称:{$className}', array('className' => $class)))); } }