示例#1
0
 /**
  * Constructor
  *
  * @access protected
  * @param  array  full liveuser configuration array
  * @return void
  * @see    LiveUser::factory()
  */
 function LiveUser_Admin_Perm_Container_MDB_Simple(&$connectOptions)
 {
     if (is_array($connectOptions)) {
         $function = 'connect';
         if (isset($connectOptions['function'])) {
             $function = $connectOptions['function'];
             unset($connectOptions['function']);
         }
         foreach ($connectOptions as $key => $value) {
             if (isset($this->{$key})) {
                 $this->{$key} = $value;
             }
         }
         if (isset($connectOptions['connection']) && MDB::isConnection($connectOptions['connection'])) {
             $this->dbc =& $connectOptions['connection'];
             $this->init_ok = true;
         } elseif (isset($connectOptions['dsn'])) {
             $this->dsn = $connectOptions['dsn'];
             $options = null;
             if (isset($connectOptions['options'])) {
                 $options = $connectOptions['options'];
             }
             $options['optimize'] = 'portability';
             if ($function == 'singleton') {
                 $this->dbc =& MDB::singleton($connectOptions['dsn'], $options);
             } else {
                 $this->dbc =& MDB::connect($connectOptions['dsn'], $options);
             }
             if (!MDB::isError($this->dbc)) {
                 $this->init_ok = true;
             }
         }
     }
 }
示例#2
0
 /**
  * Initialize the storage container
  *
  * @param array Array with the storage configuration
  * @return bool true on success, false on failure.
  *
  * @access public
  */
 function init($storageConf)
 {
     parent::init($storageConf);
     if (!MDB::isConnection($this->dbc) && !is_null($this->dsn)) {
         $this->options['optimize'] = 'portability';
         if ($this->function == 'singleton') {
             $dbc =& MDB::singleton($this->dsn, $this->options);
         } else {
             $dbc =& MDB::connect($this->dsn, $this->options);
         }
         if (PEAR::isError($dbc)) {
             $this->stack->push(LIVEUSER_ERROR_INIT_ERROR, 'error', array('container' => 'could not connect: ' . $dbc->getMessage(), 'debug' => $dbc->getUserInfo()));
             return false;
         }
         $this->dbc =& $dbc;
     }
     if (!MDB::isConnection($this->dbc)) {
         $this->stack->push(LIVEUSER_ERROR_INIT_ERROR, 'error', array('container' => 'storage layer configuration missing'));
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * Class constructor.
  *
  * @see    LiveUser::factory()
  * @access protected
  * @param  array     configuration array
  * @return void
  */
 function LiveUser_Auth_Container_MDB(&$connectOptions)
 {
     $this->LiveUser_Auth_Common($connectOptions);
     if (is_array($connectOptions)) {
         $this->LiveUser_Auth_Common($connectOptions);
         if (isset($connectOptions['connection']) && MDB::isConnection($connectOptions['connection'])) {
             $this->dbc =& $connectOptions['connection'];
             $this->init_ok = true;
         } elseif (isset($connectOptions['dsn'])) {
             $this->dsn = $connectOptions['dsn'];
             $function = null;
             if (isset($connectOptions['function'])) {
                 $function = $connectOptions['function'];
             }
             $options = null;
             if (isset($connectOptions['options'])) {
                 $options = $connectOptions['options'];
             }
             $options['optimize'] = 'portability';
             if ($function == 'singleton') {
                 $this->dbc =& MDB::singleton($connectOptions['dsn'], $options);
             } else {
                 $this->dbc =& MDB::connect($connectOptions['dsn'], $options);
             }
             if (!MDB::isError($this->dbc)) {
                 $this->init_ok = true;
             }
         }
     }
 }
 function testSingleton()
 {
     $mdb =& MDB::singleton();
     $this->assertTrue(MDB::isConnection($mdb));
     // should have a different database name set
     $mdb =& MDB::singleton($this->dsn, $this->options);
     $this->assertTrue($mdb->database != $this->db->database);
 }
示例#5
0
文件: MDB.php 项目: Zunair/xataface
 /**
  * Load the storage container
  *
  * @param  mixed &$conf   Name of array containing the configuration.
  * @param string $containerName name of the container that should be used
  * @return  boolean true on success or false on failure
  *
  * @access  public
  */
 function init(&$conf, $containerName)
 {
     parent::init($conf, $containerName);
     if (is_array($conf['storage'])) {
         if (isset($conf['storage']['connection']) && MDB::isConnection($conf['storage']['connection'])) {
             $this->dbc =& $conf['storage']['connection'];
         } elseif (isset($conf['storage']['dsn'])) {
             $this->dsn = $conf['storage']['dsn'];
             $function = null;
             if (isset($conf['storage']['function'])) {
                 $function = $conf['storage']['function'];
             }
             $options = null;
             if (isset($conf['storage']['options'])) {
                 $options = $conf['storage']['options'];
             }
             $options['optimize'] = 'portability';
             if ($function == 'singleton') {
                 $this->dbc =& MDB::singleton($conf['storage']['dsn'], $options);
             } else {
                 $this->dbc =& MDB::connect($conf['storage']['dsn'], $options);
             }
             if (PEAR::isError($this->dbc)) {
                 $this->_stack->push(LIVEUSER_ERROR_INIT_ERROR, 'error', array('container' => 'could not connect: ' . $this->dbc->getMessage()));
                 return false;
             }
         }
     }
     return true;
 }
示例#6
0
文件: MDB.php 项目: Zunair/xataface
 /**
  *
  *
  *
  * @param array &$storageConf Array with the storage configuration
  * @return boolean true on success, false on failure.
  *
  * @access public
  */
 function init($storageConf)
 {
     if (!parent::init($storageConf)) {
         return false;
     }
     if (array_key_exists('connection', $storageConf) && MDB::isConnection($storageConf['connection'])) {
         $this->dbc =& $storageConf['connection'];
     } elseif (array_key_exists('dsn', $storageConf)) {
         $this->dsn = $storageConf['dsn'];
         $function = null;
         if (array_key_exists('function', $storageConf)) {
             $function = $storageConf['function'];
         }
         $options = null;
         if (array_key_exists('options', $storageConf)) {
             $options = $storageConf['options'];
         }
         $options['optimize'] = 'portability';
         if ($function == 'singleton') {
             $this->dbc =& MDB::singleton($storageConf['dsn'], $options);
         } else {
             $this->dbc =& MDB::connect($storageConf['dsn'], $options);
         }
         if (PEAR::isError($this->dbc)) {
             $this->_stack->push(LIVEUSER_ERROR_INIT_ERROR, 'error', array('container' => 'could not connect: ' . $this->dbc->getMessage()));
             return false;
         }
     }
     return true;
 }