dmBridge PHP API
DMDataStoreFactory.php
00001 <?php
00002 #
00003 # dmBridge: a data access framework for CONTENTdm(R)
00004 #
00005 # Copyright © 2009, 2010, 2011 Board of Regents of the Nevada System of Higher
00006 # Education, on behalf of the University of Nevada, Las Vegas
00007 #
00008 
00016 abstract class DMDataStoreFactory {
00017 
00019    private static $data_store;
00020 
00025    public static function getDataStore() {
00026       $ds = (strlen(self::$data_store) > 0)
00027          ? self::$data_store : DMConfigIni::getInstance()->getString(
00028                "dmbridge.database.engine");
00029       switch ($ds) {
00030          case 'pdo_mysql':
00031             self::setDataStore("pdo_mysql");
00032             return DMMySQLDataStore::getInstance();
00033             break;
00034          case 'pdo_sqlite':
00035             self::setDataStore("pdo_sqlite");
00036             return DMSQLiteDataStore::getInstance();
00037             break;
00038       }
00039       return null;
00040    }
00041 
00048    public static final function setDataStore($name) {
00049       if (!in_array($name, DMDataStoreType::getAll())) {
00050          throw new DMDataStoreException(
00051             DMLocalizedString::getString("UNAVAILABLE_DATA_STORE"));
00052       }
00053       self::$data_store = $name;
00054 
00055       // cleanup
00056       DMMySQLDataStore::destroyInstance();
00057       DMSQLiteDataStore::destroyInstance();
00058    }
00059 
00060 }
 All Data Structures Functions Variables