Méthode 1
/** * Classe de connection à la base de données utilisant un singleton pattern */ class Connection { protected static $pdo; /** * Construction de la connection */ private function __construct() { try { self::$pdo = new PDO( 'mysql:host=localhost;dbname=test', USERNAME, PASSWORD); self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); self::$pdo->exec("SET CHARACTER SET utf8"); } catch (PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } } /** * Instanciation de la connection si elle ne l'est pas * @return string */ public static function getConnection() { if (!self::$pdo) { new Connection(); } return self::$pdo; } }
Source :
Méthode 2
class ConnectionFactory { private static $factory; public static function getFactory() { if (!self::$factory) self::$factory = new ConnectionFactory(); return self::$factory; } private $pdo; public function getConnection() { if (!$pdo) try { $pdo = new PDO( 'mysql:host=localhost;dbname=test', USERNAME, PASSWORD); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $pdo->exec("SET CHARACTER SET utf8"); } catch (PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } return $pdo; } }
Source :