private static function _SGetCaller() { if (is_null(self::$s_sCaller)) { self::$s_sCaller = sprintf('%s:%s:%08x', Ko_Tool_Module::SGetScriptFullName(), Ko_Tool_Ip::SGetServerIp(), mt_rand()); KO_DEBUG >= 5 && Ko_Tool_Debug::VAddTmpLog('data/KProxy', '_SGetCaller_Create:' . self::$s_sCaller); } return self::$s_sCaller; }
public function __construct() { if ('redis' === $this->_aConf['engine']) { $dao = $this->_aConf['redis'] . 'Dao'; $hashkey = 'koli:' . Ko_Tool_Module::SGetObjectModuleName($this) . ':' . $this->_aConf['hashkey']; $this->_oEngine = new Ko_Mode_LimitRedis($this->{$dao}, $hashkey); } else { $dao = $this->_aConf['db'] . 'Dao'; $this->_oEngine = new Ko_Mode_LimitMysql($this->{$dao}); } }
/** * 创建对象,可以创建 $sFromModule 下的任意对象 * * @return object */ public static function OCreateFromModule($sFromModule, $sName) { // 分析子模块名和文件名 list($sModule, $sFile) = Ko_Tool_Module::AGetSubModule($sName); // 构造类名 if ($sModule !== '') { $sModule = Ko_Tool_Module::SGetRegularModuleName($sModule); $sClassName = 'K' . $sFromModule . '_' . $sModule . '_' . $sFile; } else { $sClassName = 'K' . $sFromModule . '_' . $sFile; } // 创建对象 return Ko_Tool_Singleton::OInstance($sClassName); }
/** * @param string $sName 例如 goodsDao,userCafeDao * @return object */ public function oGetDao($sName) { $tag = substr($sName, -3); assert($tag === 'Dao'); $modulename = Ko_Tool_Module::SGetObjectModuleName($this); $confkey = $modulekey = substr($sName, 0, -3); if (!isset(self::$s_aInstance[$modulename][$modulekey])) { $aParam = array('module' => $modulename); if (!isset($this->_aDaoConf[$confkey])) { list($confkey, $aParam['suffix']) = explode('_', $confkey, 2); assert(isset($this->_aDaoConf[$confkey])); } self::$s_aInstance[$modulename][$modulekey] = self::OCreateDao($this->_aDaoConf[$confkey], $aParam); } return self::$s_aInstance[$modulename][$modulekey]; }
/** * 创建对象,可以创建 $sFromModule 下的任意对象 * * @return object */ public static function OCreateFromModule($sFromModule, $sName) { // 分析子模块名和文件名 list($sModule, $sFile) = Ko_Tool_Module::AGetSubModule($sName); // 构造类名 $pos = strrpos($sFromModule, '\\'); if (false !== $pos) { if ($sModule !== '') { $sModule = Ko_Tool_Module::SGetRegularModuleName($sModule); if ('\\' === substr($sFromModule, -1)) { $sClassName = substr($sFromModule, 0, $pos + 1) . 'M' . $sModule . '_' . $sFile; } else { $sClassName = substr($sFromModule, 0, $pos + 1) . 'M' . substr($sFromModule, $pos + 1) . '_' . $sModule . '_' . $sFile; } } else { if ('\\' === substr($sFromModule, -1)) { $sClassName = substr($sFromModule, 0, $pos + 1) . 'M' . $sFile; } else { $sClassName = substr($sFromModule, 0, $pos + 1) . 'M' . substr($sFromModule, $pos + 1) . '_' . $sFile; } } } else { if ($sModule !== '') { $sModule = Ko_Tool_Module::SGetRegularModuleName($sModule); $sClassName = 'K' . $sFromModule . '_' . $sModule . '_' . $sFile; } else { $sClassName = 'K' . $sFromModule . '_' . $sFile; } } // 创建对象 return Ko_Tool_Singleton::OInstance($sClassName); }