![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Piszę sobie klasę do obsługi bazy danych i przyglądam się tak bardzo popularnemu wzorcowi singleton. Wszyscy jako przykład użyteczności tego wzorca podają przykład tworzenia instancji klasy do obsługi bazy, tzn połączenia z bazą. Zacząłem się zastanawiać gdzie jest sens, oczywiście w języku php. Zakładam, że mam taką klasę i w skrypcie łącze się z bazą danych, jeśli nie ma nawiązanego połączenia to tworzę obiekt tej klasy a jeśli jest to nie tworzę.
Wszystko jasne. Tylko gdzie jest sens stosowania tego w php. Przecież w skrypcie zazwyczaj tworzy się połączenie z bazą, wykonuje potrzebne operacje na bazie a po zakończeniu wywoływania skryptu, połączenie i tak jest zamykane automatycznie.. Więc jaki jest sens stosowania tego w php? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
To nie chodzi o to masz obiekt polaczenia dostepny miedzy kolejnymi wykonaniami skrytpu, tylko gdy potrzebujesz w wyswietleni jednej strony w kilku miejscach wykonac zapytania do bazy to masz opcje:
- wszedie pisac (np.) mysql_connect(...) - ciagle przekazywac w argumentach funckji raz utworzony obiekt polaczenia - uzyc singletona -- wystarczy DB::getInstance() i masz polaczenie, z kazdego poziomu zagniezdzenia funkcji, bez koniecznosci podawani paranetrow polaczenia - uzyc rejestru, tworzysz obiekt DB, wrzucasz go do rejestru (ktory moze przechowywac mnostwo innych wszedzie-potrzebnych-obiektow), i pobierasz gdy potrzebujesz; od singletona rozni sie tym ze mozesz wymienic polaczenie na inne; jest bardziej OOP gdyz singleton to taki obiekt globalny, a przeciez globale sa BE (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 20:15 |