Exemple #1
0
 /**
  * 工厂模式实例化常用缓存类
  *
  * @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;
 }
Exemple #2
0
 /**
  * 加载并单例模式实例化扩展模块(通常为第三方程序)
  *
  *  注:这里所调用的扩展模声要放在项目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];
 }
Exemple #3
0
 /**
  * 调用视图文件的挂件(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;
 }