Exemple #1
0
 /**
  * @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);
     }
 }
Exemple #2
0
 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;
 }