/** * 工厂模式实例化常用缓存类 * * @access public * * @param string $adapter 缓存类型 * @param array $options 参数 * * @return object */ public static function factory($adapter, $options = null) { //参数分析 if (!$adapter) { return false; } $adapter = trim($adapter); $object = false; //分析缓存引擎 switch ($adapter) { case 'Memcache': $object = Cache_Memcache::getInstance($options); break; case 'Redis': $object = Cache_Redis::getInstance($options); break; case 'File': case 'Apc': case 'Xcache': case 'Wincache': case 'Eaccelerator': $object = Doit::singleton('Cache_' . $adapter); break; } return $object; }
/** * 加载并单例模式实例化扩展模块(通常为第三方程序) * * 注:这里所调用的扩展模声要放在项目extension目录里的子目录中 * * @access public * * @param string $extensionName 扩展插件名称 * * @access object */ public static final function loadExtension($extensionName) { //参数分析 if (!$extensionName) { return false; } //当所加载的扩展模块还示被实例化时 if (!isset(self::$_extensionObjArray[$extensionName])) { //加载扩展模块的引导文件(index) $extensionPath = self::_getExtRoot($extensionName) . $extensionName . '.php'; Doit::loadFile($extensionPath); self::$_extensionObjArray[$extensionName] = Doit::singleton($extensionName . 'Ext'); } return self::$_extensionObjArray[$extensionName]; }
/** * 调用视图文件的挂件(widget) * * 加载挂件内容,一般用在视图内容中 * * @access public * * @param string $widgetName 所要加载的widget名称,注没有后缀名 * @param array $params 所要传递的参数 * * @return boolean */ public static function widget($widgetName, $params = array()) { //参数分析 if (!$widgetName) { return false; } //分析Widget名称 $widgetName = trim($widgetName) . 'Widget'; Doit::singleton($widgetName)->renderContent($params); return true; }