Ejemplo n.º 1
0
 /**
  * Instantiate an Access object from named configuration, including
  * instantiating pool and driver
  *
  * @param string $name name of pool configuration to start
  *
  * @return Access|false pool or false if a pool cannot be created
  */
 protected function startPoolAccess($name)
 {
     $pool = false;
     $options = false;
     if (isset($this->poolDefs[$name]['options'])) {
         $options = $this->poolDefs[$name]['options'];
     }
     $driverName = $this->poolDefs[$name]['driver'];
     if (0 === strcasecmp($driverName, 'Composite')) {
         $drivers = array();
         foreach ($this->poolDefs[$name]['options']['drivers'] as $subDriver) {
             $drivers[] = $this->getDriver($subDriver['driver'], $subDriver['options']);
         }
         $options['drivers'] = $drivers;
     }
     $driver = $this->getDriver($driverName, $options);
     if ($driver !== false) {
         $pool = new Pool($driver);
         if (is_object($pool)) {
             $pool->setLogger($this->xoops->logger());
             $pool->setNamespace($this->xoops->db()->prefix());
         }
     }
     if (!$pool) {
         $this->xoops->logger()->warn('Could not create cache pool ' . $name);
         return $pool;
     }
     return new Access($pool);
 }