![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 420 Pomógł: 44 Dołączył: 22.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam mały problem mam skrypt który korzysta z trzech baz danych założenie było takie żeby podczas wykonywania skryptu były maksymalnie trzy połączenia z bazą dlatego chciałem zimplementować wzorzec singleton dl a każdej z baz jednak problem jest taki że podczas wywołania klasy z połączeniem do drugiej bazy połączenie z pierwszą zostaje przerwane po niżej przykładowy kody
Klasa db to standardowa klasa mająca metody typu query fetch itp Ma ktoś pomysł jak można to rozwiązać ![]() Z góry dzięki za sugestie. Ten post edytował patryczakowy 22.01.2011, 08:07:27 -------------------- Sztuką jest widzieć to czego nie widać.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 31 Dołączył: 23.02.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie powinieneś łączenie z bazą danych przenieść do konstruktora bazy DB, a w klasach które po niej dziedziczą wywoływać konstruktor rodzica przez parent::__construct(), nie ma sensu tego pchać do każdej klasy w dodatku jeśli będziesz chciał zmienić dane do BD to bedziesz to zmieniał w N klasach? Trochę to niewygodne.
Co do Singeltona, to błędnie go implementujesz. Rzuć okiem na kod:
Tak jak powyżej, jeśli po pierwszym utworzeniu obiektu "klasa", spróbujesz go utworzyć jeszcze raz (new Klasa) to zostanie zwrócony już istniejąca instancja "klasa" IMHO mamy PDO, mamy ORM a ludzie dalej korzystają z niewygodych, przestarzałych funkcji typu mysql_query itp. ... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 17:25 |