Zadejte hledaný výraz...

Přístup k databázi z třídy

Martin
verified
rating uzivatele
(62 hodnocení)
24. 10. 2011 11:11:04
Všechny zdravím.
Mám začátečnický dotaz ohledně přístupu k databázi při PHP OOP.
S OOP začínám a není mi jasná jedna věc.
Příklad
Mám třídu pro práci s databází a vytvořím objekt
$databaze = new MojeDatabaze;
A když potřebuju přístup k databázi v jiném objektu, jak se to standartně dělá. Když chci např přístup z konstruktoru? Musí se ten databázový objekt přenášet v parametru jako v ukázce nebo se to dělá jinak
Díky za pomoc.
24. 10. 2011 11:11:04
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690234
red
verified
rating uzivatele
24. 10. 2011 12:21:05
Stačí tam připsat jeden řádek "global $databaze", tím budeš moct volat třídu databaze z té jiné třídy.
24. 10. 2011 12:21:05
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690233
sharkws
verified
rating uzivatele
(6 hodnocení)
24. 10. 2011 12:36:43
použití global bych se vyhnul a raději to řešil statickou funkcí
$vysledek = databaze::provestsqldotaz('SELECT * ...');
ale spíše než vytvářet vlastní třídu volil bych nějaký fw např DiBi
24. 10. 2011 12:36:43
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690232
Martin
verified
rating uzivatele
(62 hodnocení)
24. 10. 2011 12:41:49
Dík oběma.
24. 10. 2011 12:41:49
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690231
Tomáš Burda
verified
rating uzivatele
(1 hodnocení)
26. 10. 2011 15:11:33
Načtení přes konstruktor je v pořádku. Je to asi nejčistší způsob (tim netvrdím, že jediný zprávný). Prostuduj pojem dependency injection.
26. 10. 2011 15:11:33
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690230
Jak říká Ani, to tvoje řešení je nejčistší. Přestože spojení na DB je opravdu globální zdroj, prostě si to předej v parametru konstruktoru / funkce.
Přiměje tě to přemýšlet nad pravomocemi tříd, jestli opravdu potřebují přístup k DB a zda je můžeš navrhnout lépe.
A v neposlední řadě můžeš takovou třídu lépe testovat, aniž by musela opravdu chodit do databáze (předáš jí třídu, která se jako DB tváří, ale všechny požadavky zahazuje nebo jen loguje).
26. 10. 2011 16:09:49
https://webtrh.cz/diskuse/pristup-k-databazi-z-tridy#reply690229
Pro odpověď se přihlašte.
Přihlásit