/** * @brief 将Ap的autoload环境切换回调用者所在的APP * * @return * @retval * @see * @note * @author wiki * @date 2011/09/06 16:13:23 **/ public function resetServicePath() { $lenStack = count(Saf_Api_Server::$serviceStack); if ($lenStack >= 2) { unset(Saf_Api_Server::$serviceStack[$lenStack - 1]); $strLastService = Saf_Api_Server::$serviceStack[$lenStack - 2]; //切换currAPP Bd_AppEnv::setCurrApp($strLastService); //切换Ap上下文 $objAp = Ap_Application::app(); $objAp->setAppDirectory(APP_PATH . "/" . $strLastService); $local_lib = Bd_AppEnv::getEnv('code') . '/library'; Ap_Loader::getInstance()->setLibraryPath($local_lib); //还原cgi $arrLastCgi = Saf_Api_Server::$cgiStack[$lenStack - 2]; $res = Saf_SmartMain::setCgiStart($arrLastCgi); unset(Saf_Api_Server::$cgiStack[$lenStack - 2]); } else { //切换APP Bd_AppEnv::setCurrApp(MAIN_APP); $objAp = Ap_Application::app(); $objAp->setAppDirectory(APP_PATH . "/" . MAIN_APP); $local_lib = Bd_AppEnv::getEnv('code') . '/library'; Ap_Loader::getInstance()->setLibraryPath($local_lib); } }
private static function initAppEnv($app_name) { // 检测当前App if ($app_name != null || ($app_name = self::getAppName()) != null) { define('IS_ODP', true); define('MAIN_APP', $app_name); } else { define('IS_ODP', false); define('MAIN_APP', 'unknown-app'); } // APP宏仅为了兼容一些老代码 define('APP', MAIN_APP); // 设置当前App require_once LIB_PATH . '/bd/AppEnv.php'; Bd_AppEnv::setCurrApp(MAIN_APP); return true; }