public static function VHandleShutdown() { static $s_aFatalErrors = array(E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR); $error = error_get_last(); if (null !== $error && in_array($error['type'], $s_aFatalErrors)) { Ko_Web_Event::Trigger('ko.error', 'error', $error['type'], $error['message'], $error['file'], $error['line'], array()); Ko_Web_Event::Trigger('ko.error', '500', $error['type'], $error['message'], $error['file'], $error['line'], array()); } Ko_Web_Event::Trigger('ko.error', 'shutdown'); }
$loginuid = $loginApi->iGetLoginUid(); if (empty($loginuid)) { Ko_Web_Response::VSetRedirect('http://' . PASSPORT_DOMAIN . '/user/login'); Ko_Web_Response::VSend(); exit; } } } $hooks = COMMON_CLASS_PATH . 'hooks/' . $appname . '.php'; if (is_file($hooks)) { require_once $hooks; } }); Ko_Web_Event::On('ko.error', '500', function ($errno, $errstr, $errfile, $errline, $errcontext) { Ko_Web_Error::V500($errno, $errstr, $errfile, $errline, $errcontext); exit; }); Ko_Web_Event::On('ko.dispatch', 'before', function () { Ko_Tool_Adapter::VOn('user_baseinfo', array('KUser_baseinfoApi', 'AAdapter')); Ko_Tool_Adapter::VOn('image_baseinfo', array('KStorage_Api', 'AAdapter')); $uri = Ko_Web_Request::SRequestUri(); $appname = Ko_Web_Config::SGetAppName(); if ('zc' === $appname) { $_GET['uid'] = 20; } }); Ko_Web_Event::On('ko.dispatch', '404', function () { Ko_Web_Route::V404(); exit; }); require_once KO_DIR . 'web/Bootstrap.php';
<?php /** * Created by JetBrains PhpStorm. * User: Jichen Zhou * Date: 2015年12月22日 * Time: 下午5:31 */ Ko_Web_Event::On('ko.dispatch', 'before', function () { $uri = Ko_Web_Request::SRequestUri(); $script = Ko_Web_Request::SScriptName(); $userApi = new KUser_userApi(); if ($uri == '/user/login/index') { echo "hook logout" . chr(10); // $userApi->logoutAdminAuth(); } elseif ($uri == '/rest/user/login/') { } else { if (!$userApi->checkLogin()) { $url = 'http://' . WWW_DOMAIN . '/user/login/index'; header('Location:' . $url); exit; } } });
<?php /** * Bootstrap * * @package ko/Web * @author zhangchu */ if (!defined('KO_WEB_BOOTSTRAP')) { define('KO_WEB_BOOTSTRAP', 1); Ko_Tool_Xhprof::VStart(); Ko_Web_Event::Trigger('ko.bootstrap', 'before'); Ko_Web_Config::VLoad(); Ko_Web_Event::Trigger('ko.config', 'after'); Ko_Web_Error::VHandle(); Ko_Web_Rewrite::VHandle(); Ko_Web_Event::Trigger('ko.dispatch', 'before'); if (Ko_Web_Route::IDispatch($phpFilename)) { Ko_Web_Event::Trigger('ko.dispatch', '404'); } else { if ('' !== $phpFilename) { $cwd = getcwd(); chdir(dirname($phpFilename)); require_once $phpFilename; chdir($cwd); } } }
private function _iDelete($vHintId, $aKey, $oOption, $bNoCache) { $oOption = $this->_vBuildOption($oOption, $vHintId, $aKey); $iRet = $this->_oGetSqlAgent()->iDelete($this->_sTable, $this->_iGetHintId($vHintId), $oOption); if (0 != $iRet && !$bNoCache) { $this->_vDelCache($vHintId, $aKey); $aKey[$this->_sSplitField] = $vHintId; $indexData = $this->aGetIndexValue($aKey); Ko_Web_Event::Trigger('ko.db', 'delete', $this->_sTable, $indexData); } return $iRet; }