* // 注册一个对象 * Zeed::register(new MyObject(), 'keyName'); * ..... * // 稍后取出对象 * $obj = Zeed::regitry('MyObject'); * * * @param object $obj 要登记的对象 * @param string $name 用什么名字登记 * @return object */ public static function register($obj, $name = null) { if (empty($name) && is_object($obj)) { $name = get_class($obj); } elseif (empty($name)) { Zeed_Loader::loadClass('Zeed_Exception'); throw new Zeed_Exception(Zeed::_t('Type mismatch. $obj expected is object, actual is "%s".', gettype($obj))); } self::$_objects[$name] = $obj; return $obj; } /** * 查找指定名字的对象实例,如果指定名字的对象不存在则抛出异常 * * * // 注册一个对象 * Zeed::register(new MyObject(), 'obj1'); * ..... * // 稍后取出对象 * $obj = Zeed::regitry('obj1'); * * * @param string $name 要查找对象的名字 * * @return object 查找到的对象 */ public static function registry($name) { if (isset(self::$_objects[$name])) { return self::$_objects[$name]; } Zeed_Loader::loadClass('Zeed_Exception'); throw new Zeed_Exception(Zeed::_t('No object is registered of name "%s".', $name)); } public static function _t() { $args = func_get_args(); return call_user_func_array('sprintf', $args); } public static function packageClass($classArr, $cacheKey = null, $autoPackage = false) { if (! $autoPackage) { return false; } if (! is_array($classArr)) { $classArr = array((string) $classArr); } if (is_null($cacheKey)) { $cacheKey = md5(implode(',', $classArr)); } $cacheFile = ZEED_PATH_DATA . 'shadow/' . $cacheKey . EXT; if (file_exists($cacheFile)) { include $cacheFile; return; } $cacheContent = ''; foreach ($classArr as $class) { $file = str_replace('_', DIRECTORY_SEPARATOR, $class) . EXT; $file = dirname(__FILE__) . '/' . $file; $cacheContent .= str_replace('