public static function create($service, $extra = null) { //set logid if (defined('LOG_ID')) { ral_set_logid(LOG_ID); } if (!is_array($extra)) { $extra = self::$extra; } else { $extra = array_merge(self::$extra, $extra); } self::$err_msg = ''; if (strpos($service, '_') === false) { $classname = 'Ak_Service_' . $service; } else { $classname = $service; } $ret = new $classname(); if ($ret->_init($service, $extra)) { return $ret; } self::$err_msg = $ret->get_error(); return null; }
/** * @brief 数据访问接口初始化,须在语言识别(checkLocale)之后调用 or $param * @param $param * 1) 默认不传,使用识别后的instance,locale; * 2) array('instance' => xx, //必须 * 'locale' => xx //必须 * ) * @return bool */ public function initDataInterface($param = null) { if (null == $param) { $instance = Bd_Global::getInstance(); $locale = Bd_Global::getLocale(); } else { $instance = $param['instance']; $locale = $param['locale']; if (empty($param['instance'])) { Bd_Log::warning(" initDataInterface input param \"instance\" can't be empty! param:" . var_export($param, true)); return false; } } if (empty($instance)) { Bd_Log::warning(" initDataInterface \"instance\" can't be empty! "); return false; } Bd_Conf::setLevel("/i18n/instance/{$instance}/"); if (!class_exists('Bd_RalRpc')) { require_once dirname(__FILE__) . '/RalRpc.php'; } require_once dirname(__FILE__) . '/global/strategy/Base.php'; Bd_RalRpc::add_extra(array('instance' => $instance, 'region' => $instance, 'locale' => $locale)); Bd_Log::addNotice('instance', $instance); Bd_Log::addNotice('locale', $locale); Bd_Log::addNotice('strategy', self::$_cur_strategy); return true; }