Nette\Database a možnosť reconnect-u po odpojení
- ricco24
- Člen | 141
Ahojte,
je možné instanciu nette\database „reconnectnut“ k database po jej
odpojení? Napríklad pri dobehnutí dlhého scriptu pri ktorom sa na začiatku
vyberú z db dáta, databáza ma timeoutom pri vykonávaní scriptu odpojí. Na
jeho konci by som chcel do db vložiť nové dáta no nenašiel som spôsob ako
sa nejako rozumne recconectnúť k db.
Malo by stačiť zavolať
$database->connect()
Ale riadok
if ($this->pdo) {
return;
}
mi nedovolí vytvoriť novú instanciu pdo a tým sa reconnectúť k databáze.
- ricco24
- Člen | 141
Pri vytváraní novej instancie Nette\Database nastane v momente keď ju používam spolu s DIC problém. Úpravu služby potrebujem propagovať aj do všetkých ostatných služieb ktoré ju používajú.
Pri použití
$this->getContainer()->removeService('nette.database.default');
$this->getContainer()->addService('nette.database.default', $newInstance);
mi v službách ktoré už boli instancované zostane stará instancia
Nette\Database ktorá je od db už odpojená.
Preto by bolo dobré mať možnosť využiť funkciu connect() poprípade novú
funkciu reconnect() na opätovné vytvorenie PDO. Tým by nenastal problém pri
remove/add service do DIC.
Editoval ricco24 (2. 6. 2014 11:29)