1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| /**
* Classe ConnectionManager
* @subpackage ConnectionManager
*/
class ConnectionManager {
/**
* Connections disponibles
* @var array
*/
protected static $_connections = array();
/**
* Ajouter une connection
* (utilse le même prototype que le constructeur
* de PDO)
*
* Renvoie un identifiant arbitraire si la connexion à
* été ouverte avec succès, false sinon.
*
* @param string $dsn
* @param string $username
* @param string $password = ""
* @param array $driver_options = array()
* @return integer
*/
public static function addConnection ($dsn, $username, $password= "", array $driver_options = array()) {
try {
$pdo = new PDO($dsn, $username, $password, $driver_options);
}
catch (PDOException $e) {
return false;
}
self::$_connections[$id = crc32($dsn)] = $pdo;
return $id;
}
/**
* Supprime une connection identifiée par $id
* (la valeur de $id est l'une des valeurs retournée
* par ConnectionManager::addConnection).
* @param integer $id
* @return boolean
*/
public static function removeConnection ($id) {
if (isset(self::$_connections[$id])) {
unset(self::$_connections[$id]);
return true;
}
return false;
}
/**
* Obtenir un objet de connection identifié par $id
* (la valeur de $id est l'une des valeurs retournée
* par ConnectionManager::addConnection).
*
* Si la connection correspondant à cet id n'a pas
* été trouvé, null est retourné
*
* @param integer $id
* @return PDO
*/
public static function getConnection ($id) {
if (isset(self::$_connections[$id])) {
return self::$_connections[$id];
}
return null;
}
} |
Partager