Prvo, izbacio bih bilo kakvo korišćenje konstanti onih gore.
Ti parametri su idealni kandidati da uđu u "__construct" metod. Drugo, ne bih koristio singleton. Izbegavaj ga generalno. U jednom trenutku ti mogu zatrebati dve konekcije npr.
Recimo, možeš da koristiš "decorator" pattern:
class Connection
{
/**
* \PDO
*/
private $connection;
/**
* @param string $server
* @param string $dbName
* @param string $username
* @param string $password
*/
public function __construct($server, $dbName, $username, $password)
{
$this->pdo = new \PDO("mysql:host=". $server .";dbname=". $dbName, $username, $password);
}
/**
* @param string $query
*
* @return \PDOStatement
*/
public function query($statement)
{
return $this->pdo->query($statement);
}
}
Mada ovo zaista nije neophodno ukoliko nemaš specifične zahteve pa želiš da prilagodiš ponašanje PDO-a svom projektu. Možeš razmisliti i o jednostavno extendovanju samog \PDO-a
class MyDB extends \PDO
{
// Overrajduj ovde šta i kako želiš
}
Treće, i, mislim najpametnije ti je da ne izmišljaš toplu vodu već da koristiš nešto već postojeće, konkretno bih ti preporučio da pogledaš Doctrine DBAL: http://www.doctrine-project.org/projects/dbal.html
|