![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie wszystkich,
Moj problemik wyglada nastepujaco Mam dwie klasy sql oraz session Jak nietrudno sie domyslic pierwsza do obslugi SQL (dokladnie PgSQL) a druga do obsługi sesji. I teraz pytanko klasa session dziedziczy z klasy sql (klas sql jest matka). Destruktor klasy sql konczy poloczenie z baza danych
Destruktor klasy session ma uaktualnic istniejaca sesje jesli zostana spelnione odpowiednie warunki.
Problem jest w tym ze destroktor w klasie sql zamyka mi to poloczenie jako pierwszy. I wówczas destruktor w klasie sesii nie jest wstanie wykonac metody query(wchodzacej w sklad sql). Poniewaz poloczenie z baz zostalo przerwane (zrobil to destruktor w klasie sql). Pytanie: Jak zrobic zeby naiperw wykonal sie destruktor klasy sesion (dziedziczaca) a pozniej destruktor klasy sql (i czy tak wogle da sie zrobic). PS: W chwili obecnej udalo mi si to obejsc w ten sposób ale szukam innego rozwiazania
Za wszelkie sugestie dzieki z gory ![]() //edited by DeyV - Używj tagu php |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 8.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(chmolu @ 2005-10-25 18:33:01)
A tak w ogóle to po co klasa Session ma dziedziczyć z klasy SQL? Wprowadzasz tylko bałagan i głupie błędy. Dzieki za tak szybka odpowiedz jednak aproponowane przez ciebie rozwiazanie niestety nie dziala. Klasa sql w moim przypadku obsluguje wszystkie metody zwiazane z obsluga bazy danych. A kolejne klasy ktore dokonuja jakichs operacji na danych w bazie korzystaja z tej klasy. Dzieki temu wewnatrz klasy session nie musze pisac czegos w tym stylu NP: Kod $result = pg_query($conn, "SELECT author, email FROM authors"); Tylko pisze Kod $db->query("SELECT author, email FROM authors"); Dodatkowo jesli che uruchomic mechanizm transakcji to wklepuje tylko kod w stylu Kod $db->query("jakies zapytanie",BEGIN_TRANSACTION); //zrobilem cos na wzor z phpBB2 a caly mechanizm uruchamiajacy i zamykajacy proces transakcji umieszczeny jest w metodzie query w klasie sql. Czy to jest nielogiczne? Byc moze sie myle jezeli tak to wytlumacz mi czemu? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Sesja nie musi byc zapisywana w bazie danych (np. w plikach) wiec nie powinna dzidziczyc po SQL (bo zajmuje sie czym innym niz obsluga polaczen z baza danych), tylko wykorzystywac obiekty tej klasy.
Cytat Jak zrobic zeby naiperw wykonal sie destruktor klasy sesion (dziedziczaca) a pozniej destruktor klasy sql (i czy tak wogle da sie zrobic). Nie polegaj na kolejnosci wywolywania destruktorow, lepiej recznie wszystko wylaczaj/zapisuj sesje/rozlaczaj z baza. http://forum.php.pl/index.php?showtopic=22168 http://forum.php.pl/index.php?showtopic=27628 -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 13:27 |