SelectionFactory a Tranzakcie

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

Caute vsimol som ze sa premenovalo Nette\Database\Connection na Nette\Database\SelectionFactory, chcel by som sa spytat ako teraz riesit transakcie, doteraz som pouzival:

/** @var Nette\Database\Connection */
protected $connection;

...
$this->connection->beginTransaction();
$table = $this->connection->table('table');
$table->update(...);
$this->connection->commit();

Samozrejme to teraz nepojde, takze na transakcie mam pouzivat Connection?

/** @var Nette\Database\Connection */
protected $connection;

/** @var Nette\Database\SelectionFactory */
protected $selectionFactory;

...
$this->connection->beginTransaction();
$table = $this->selectionFactory->table('table');
$table->update(...);
$this->connection->commit();
hrach
Člen | 1836
+
0
-

Ano. SelectionFactory ma take getConnection()

David Matějka
Moderator | 6445
+
0
-

connection se neprejmenovalo na selectionfactory, selectionfactory je nova trida, ktera slouzi jako tovarna na selection, vsechno ostatni zustava v connection. takze ano, pokus budes chtit delat i neco jinyho, nez jen vytvaret selection (transakce, vlastni dotazy…), tak budes muset krome selectionfactory pouzivat i connection

EDIT: pozde :)
@hrach: a jakej byl vlastne duvod vytvareni selectionfactory a zruseni ty metody table v connection? je to vopruz :)

Editoval matej21 (19. 7. 2013 11:14)

hrach
Člen | 1836
+
0
-

Rekneme ze je to koncepcni zmena, taky kvuli moznosti DI/DIC, ktera bude v Nette 2.2 poradne rozvinuta.

enumag
Člen | 2118
+
0
-

@hrach: „poradne rozvinuta“ – probudils mou zvědavost, co plánuješ? :-)

Editoval enumag (19. 7. 2013 13:18)