[Bogue] Petit problème avecPMO_MySGBD::factory()
En testant le driver pdo j'ai fait une erreur de frapper dans ma configuration (j'en fais souvent des erreurs de frappe :roll:). J'ai tapé pdi au lieu de pdo :
Code:
1 2 3 4
|
$config = PMO_MyConfig::factory();
$config->set('db.driver', 'pdi');
$config->set('db.pdodriver', 'mysql'); |
et ça a fonctionné sans problème même si le driver est invalide. Le problème provient de PMO_MySGBD::factory() qui utilise PDO par défaut
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
switch($authdb['driver']){
case 'sqlite':
(...)
default:
require_once("PMO_sgbd_pdo.php");
self::$INSTANCE = new Pmo_sgbd_pdo($object);
if(!isset($object))
self::$INSTANCE->connectSgbd($authdb);
break;
} |
Comme PDO est le driver par défaut, on peut mettre n'importe quoi dans $authdb['driver']. Si le pdodriver est valide, ça passe. Je suggère ce changement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
switch($authdb['driver']){
(...)
case 'pdo':
require_once("PMO_sgbd_pdo.php");
self::$INSTANCE = new Pmo_sgbd_pdo($object);
if(!isset($object))
self::$INSTANCE->connectSgbd($authdb);
break;
default:
throw new Exception("Error: ".$authdb['driver']." is not a PMO supported driver");
break; |
De cette façon, un exception va être générée si le driver est invalide.
HTH