Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sens stosowania singleton w php
Jarod
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
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)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 20:15