/** * 创建对象,可以创建根模块下的任意对象 * * @return object */ public static function OCreateFromRoot($vClass, $sName) { // 获取模块名 $sThisModule = Ko_Tool_Module::SGetObjectModuleName($vClass); // 获取根模块名 $sRootModule = Ko_Tool_Module::SGetRootModuleName($sThisModule); return self::OCreateFromModule($sRootModule, $sName); }
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}); } }
/** * @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]; }