Beispiel #1
0
 /**
  * Retrieves an instanse to the configurated XOAD Events storage provider.
  *
  * <p>Example:</p>
  * <code>
  * <?php
  *
  * require_once('xoad.php');
  *
  * $storage =& XOAD_Events_Storage::getStorage();
  *
  * $storage->postEvent('event', 'class');
  *
  * ?>
  * </code>
  *
  * @access	public
  *
  * @return	object	Singleton {@link XOAD_Events_Storage} inherited class based
  *					on the configuration (see {@link XOAD_EVENTS_STORAGE_DSN}).
  *
  * @static
  *
  */
 public static function &getStorage()
 {
     if (!isset(self::$instance)) {
         $className = null;
         $classParameters = null;
         $separator = '://';
         $position = strpos(XOAD_EVENTS_STORAGE_DSN, $separator);
         if ($position === false) {
             $className = XOAD_EVENTS_STORAGE_DSN;
         } else {
             $className = substr(XOAD_EVENTS_STORAGE_DSN, 0, $position);
             $classParameters = substr(XOAD_EVENTS_STORAGE_DSN, $position + strlen($separator));
         }
         if (empty($className)) {
             return null;
         }
         $fileName = XOAD_BASE . '/classes/events/storage/' . $className . '.class.php';
         /**
          * Load the file that defines the events storage provider.
          */
         require_once $fileName;
         $realClassName = 'XOAD_Events_Storage_' . $className;
         if (!class_exists($realClassName)) {
             return null;
         }
         self::$instance = new $realClassName($classParameters);
     }
     return self::$instance;
 }