jaký zvolit způsob připojení k databázi

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

Ahoj, chtěl bych se zeptat, jaký používate způsob připojení k databázi a proč. Mě už se z těch různorodých možností tak zatočila hlava,že nevím který zvolit.

Co si tak rychle vybavuji:

  • servise
  • bootstrap
  • onStartup
  • BasePresenter
  • BaseModel
Patrik Votoček
Člen | 2221
+
0
-

service

  • je to lazy
  • je to DI
  • dá se k tomu dostat v podstatě odkudkoli
  • dá se to jednoduše vyměnit
  • nenapadá mě „čistější“ způsob inicializace EntityManageru (používám Doctrine2)
Honza Kuchař
Člen | 1662
+
0
-

Service je asi nejlepší.

Já z hist. důvodů používám registr dibi… Tedy dibi::query();, atd. (Ale dnes už je to asi překonáno.)

Bertram
Člen | 75
+
0
-

Děkuji, ještě bych se chtěl zeptat trochu konkrétněji. Po doporučení jsem se rozhodl, že to zkusím z Dibi, ale jak si tak pročítám její Quick Start, a ostatní zdroje, které jsem dohledal, tak si tu servise nějak nedokážu představit. Leda tedy,že by obsahovala metodu vracející připojení ve stylu:

return dibi::connect(Environment::getConfig('database'));

Ale nevidím tu žádnou výhodu proti nastavení v bootstrap.

Osvětlíte mi to někdo prosím?

Honza Kuchař
Člen | 1662
+
0
-

Jediny rozdil je v tom, ze ty sluzby jsou cetralni, ale praktickou vyhodu tedy nevim…

Jan Jakeš
Člen | 177
+
0
-

Rozdíl v tom je. Service je lazy, snadno se nastavuje přímo v konfig. souboru, pokud chceme instanciovatelný singleton, tak se nám o to Context sám postará, atd. Je to prostě nejčistší návrh (DI).

Tharos
Člen | 1030
+
0
-

Juan: Dibi samo o sobě umí být lazy (viz DibiConnection) a pokud jde o „instanciovatelný singleton“, dibi se za všech okolností používá staticky.

Zrovna při práci s dibi mi přístup přes services připadá trochu zbytečný (ale je to asi výjimka, jiné knihovny se používají skoro zpravidla jinak).

Editoval Tharos (29. 3. 2011 23:25)

Jan Jakeš
Člen | 177
+
0
-

Jasně, Dibi je výjimka i v tom, že se jí dá předat konfigurace tak snadno, jak uvedl Bertram. Ovšem obecně, když děláš na větším projektu a používáš větší množství dalších knihoven, service je to pravé. Navíc u většího projektu pravděpodobně sáhneš po ORM/ODM a tam i to nastavení bude vypadat úplně jinak.