При реализации «Фабрики» обычно так, что другие классы, методы и т. Д., Использующие ее, не должны знать или заботиться о соединениях, именах пользователей, паролях и т. Д.
Я бы сделал что-то более похожее на:
static class PDOConnectionFactory {
// database
private $dbType = "mysql";
// connection parameters
private $host = "localhost";
private $user = "user";
private $senha = "password";
private $db = "database";
// new CreateNewConnection( true ) <--- persistent connection
// new CreateNewConnection() <--- no persistent connection
public function CreateNewConnection($persistent = false) {
try {
$con = new PDO($dbType . ":host=" . $host . ";dbname=" . $db, $user, $senha, array(PDO::ATTR_PERSISTENT => $persistent));
// carried through successfully, it returns connected
return $con;
}
catch (PDOException $ex) {
// in case that an error occurs, it returns the error;
echo "We are currently experiencing technical difficulties. We have a bunch of monkies working really hard to fix the problem. Check back soon: " . $ex->getMessage();
}
}
}
Затем вы используете соединение, возвращаемое CreateNewConnection (), любым необходимым способом.
Я не проверял, компилируется ли вышеупомянутый код, может быть несколько опечаток / проблем, но вы поняли идею. Теперь вам нужно сделать еще один шаг и реализовать что-то вроде шаблона хранилища:)