Source for file Store.php

Documentation is available at Store.php

  1. <?php
  2. /**
  3.  * OpenID_Store
  4.  * 
  5.  * PHP Version 5.2.0+
  6.  * 
  7.  * @category  Auth
  8.  * @package   OpenID
  9.  * @author    Bill Shupp <hostmaster@shupp.org>
  10.  * @copyright 2009 Bill Shupp
  11.  * @license   http://www.opensource.org/licenses/bsd-license.php FreeBSD
  12.  * @link      http://pearopenid.googlecode.com
  13.  */
  14.  
  15. /**
  16.  * Required files
  17.  */
  18. require_once 'OpenID/Store/Exception.php';
  19.  
  20. /**
  21.  * Provides a factory for creating storage classes.
  22.  * 
  23.  * @category  Auth
  24.  * @package   OpenID
  25.  * @author    Bill Shupp <hostmaster@shupp.org>
  26.  * @copyright 2009 Bill Shupp
  27.  * @license   http://www.opensource.org/licenses/bsd-license.php FreeBSD
  28.  * @link      http://pearopenid.googlecode.com
  29.  */
  30. abstract class OpenID_Store
  31. {
  32.     /**
  33.      * Creates an instance of a storage driver
  34.      * 
  35.      * @param string $driver  Driver name
  36.      * @param array  $options Any options the driver needs
  37.      * 
  38.      * @return void 
  39.      */
  40.     static public function factory($driver 'CacheLite'array $options array())
  41.     {
  42.         $file  'OpenID/Store/' str_replace('_''/'$driver '.php');
  43.         $class 'OpenID_Store_' $driver;
  44.  
  45.         include_once $file;
  46.         if (!class_exists($class)) {
  47.             throw new OpenID_Store_Exception(
  48.                 'Invalid storage driver: ' $driver
  49.             );
  50.         }
  51.  
  52.         $instance new $class($options);
  53.         if (!$instance instanceof OpenID_Store_Interface{
  54.             throw new OpenID_Store_Exception(
  55.                 $class ' does not implement OpenID_Store_Interface'
  56.             );
  57.         }
  58.         return new $class($options);
  59.     }
  60. }
  61. ?>

Documentation generated on Tue, 15 Dec 2009 19:01:00 -0800 by phpDocumentor 1.4.3