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
<?php public function __destruct() { { } } ?>
Destruktor klasy session ma uaktualnic istniejaca sesje jesli zostana spelnione odpowiednie warunki.
<?php public function __destruct() { if($this->action == UPDATE) { globa $db; $sql = 'UPDATE sessions SET id = ''.$this->session_id.'', time='.time().' WHERE id=''.$this->session_id. '''; $db->query($sql); // metoda query jest z klasy sql ( obsluguje zapytania SQL-owe) } } ?>
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
<?php public function __destruct() { if($this->action == UPDATE) { $new = new sql(); // TUTAJ JESZCZE RAZ LACZE SIE Z BAZA // tworzae nowe poloczenie z baza danych i tym sposobem to dziala $sql = 'UPDATE sessions SET id = ''.$this->session_id.'', time='.time().' WHERE id=''.$this->session_id. '''; $new->query($sql); // metoda query jest z klasy sql ( obsluguje zapytania SQL-owe) } } ?>
Za wszelkie sugestie dzieki z gory

//edited by DeyV - Używj tagu php