Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zamiast global, Łączenie sie jednej klasy przez druga do bazy...
Kirtan Loor
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.10.2004
Skąd: Płock

Ostrzeżenie: (0%)
-----


Witam,

Mam takie pytanie: Jak nie uzywajac
  1. <?php
  2. global $db
  3. ?>

zmusic jedna klase (w tym wypadku klase session handlera) do laczenia sie z baza danych za pomoca klasy bazodanowej?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




No chociazby przy uzyciu wzorca singleton. Tu cos pisali:
Temat: php GLOBALSand39varand39 a global var roznice
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Ze wzorcem singelton należy uważać w przypadku klasy łączącej się z bazą danych. Jak wiadomo wzorzec ten zakłada, że można utworzyć tylko jeden obiekt na podstawie danej klasy, więc jeśli używasz kilku baz danych możesz mieć problem. Ale jeśli nie używasz i w przyszłości nie planujesz używać więcej niż jednej bazy, wówczas ten wzorzec pasuje jak ulał do Twojego problemu.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale jeśli nie używasz i w przyszłości nie planujesz używać więcej niż jednej bazy,

@batman ale ty mowisz o uzywaniu kilka baz naraz? W tym samym czasie przez jedną aplikacje? Nawet jesli tak, no to przecież mozna pobierac obiekty dla kazdej bazy oddzielnie.
Ja przykladowo zrobilem sobie klase Factory, która zwraca mi na zasadzie singletonu dany obiekt jaki ona trzyma. Tak wiec moge w niej miec kilka obiektów baz i kazdy moze dotyczyc innej bazy
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Skoro łączysz się z kilkoma bazami danych, tworzysz kilka obiektów do obsługi różnych baz, a to kłóci się z założeniami wzorca singelton. Wspomniałeś o klasie Faktory, a to już inna para klaoszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W opisany sposób można podłaczyć się z wieloma bazami.
A co do używania kilku baz. Tak używam kilku baz w jednej aplikacji. Jedna baza zawiera info o kliencie, produktach, itp. Druga natomiast info o zamówieniach. Architektura ta jest zbudowana w taki sposób, ponieważ baza do zamówień zbiera informacje z kilku systemów i jest obsługiwana przez skrypty chodzące w cronie.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Skoro łączysz się z kilkoma bazami danych, tworzysz kilka obiektów do obsługi różnych baz, a to kłóci się z założeniami wzorca singelton.
Hmmm, no wlasnie, tworze obiekty do obslugi roznych baz, czyli de fakto to rózne obiekty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale do obslugi danej bazy ja zawsze dostane ten sam obiekt, bez tworzenia innych.

Cytat
Wspomniałeś o klasie Faktory, a to już inna para klaoszy
No nie wiem. Factory mi zwraca obiekty wlasnie na podstawie wzorca singleton. Dany obiekt zwroci mi tylko raz.

edit: co do Factory to chyba cie nie zrozumialem. znaczy teraz wydaje mi sie, iż myslimy podobnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czyli faktycznie singleton w danej klasie dawalby nam tylko jeden obiekt danej klasy, ale juz Factory moze dawac na kilka obiektów danej klasy (przyklad wlasnei tych roznych baz). przy czym nie będzie powielania tych samych obiektow: do bazy xxx dostane zawsze ten sam obiekt, do bazy yyy zawsze dostane inny ten sam obiekt itd.
Go to the top of the page
+Quote Post
batman
post
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Muszę przyznać, że masz rację co do fabryki. Można zrobić by dla każdej bazy zwracany był inny obiekt. W każdym bądź razie singleton nadaje się do zastąpienia global.
Go to the top of the page
+Quote Post
Kirtan Loor
post
Post #8





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.10.2004
Skąd: Płock

Ostrzeżenie: (0%)
-----


Ok, juz mam i chyba rozumiem;-)
Dzieki bardzo.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 14.06.2026 - 10:18