Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Destruktor wykonuje się za wcześnie.
kazaa9
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 30.05.2007
Skąd: Wędzina

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


Witam.

Mam dziwny problem z destruktorami i nie za bardzo wiem jak go rozwiązać. Przeglądałem trochę forum i manuala, ale nic w podobnym stylu nie było.

Oto opis mojego problemu: mam prosty systemik, w którym mam m. in. klasy DB (obsługa bazy danych, śle zapytania i przechowuje informacje o ewentualnych błędach) oraz Session (jak sama nazwa mówi - do obsługi sesji).

W klasie Session w destruktorze wywołuję metodę, która kończy mi daną sesję, czyli przy pomocy klasy DB robi UPDATE danych w bazie. Działa, jednak...no właśnie. Gdybym w klasie DB miał destruktor, w którym kończyłbym połączenie z bazą danych, to to zapytanie już wygeneruje błąd, czyli tak jakbym był rozłączony. Dodam jeszcze, że później pobieram sobie pewną metodą informacje o zapytaniach (klasa DB) i brakuje tego ostatniego zapytania kończącego sesję (teraz oczywiście rozważam wersję bez zakończonego połączenia).

Aha, jeszcze dodam (może to mieć jakiś związek - tak przypuszczam), że obiekty pobieram przy pomocy czegoś w stylu rejestru, tzw. ClassLoader'a.
Załączę odnośniki do kodów klas. Na logikę i angielski proszę na razie nie zwracać uwagi - poprawki wprowadzam na bieżąco (IMG:style_emoticons/default/winksmiley.jpg)
session.class.php
db.class.php
classloader.class.php
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kazaa9
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 30.05.2007
Skąd: Wędzina

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


Cytat
O ile sam nie usuwasz obiektów robi to samo PHP przy zakończeniu skryptu - a wtedy nie możesz być 100%-owo pewny kolejności. Rozwiązanie powyżej.


Więc chyba przebuduję swoją aplikacyjkę, wywalę destruktory i zastąpię to tym (nieco zmienionym - mam chyba pomysł) rozwiązaniem. Czytałem sporo o tych destruktorach i faktycznie pojawiło się trochę informacji o "wałkach" jakie robią. Myślałem, że dotyczyły one wersji PHP <=5.1, a tu proszę.

Dziękuję za rzeczowe uwagi.
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 21:12