Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Singleton i n-razy wykonywany destruktor
Forum PHP.pl > Forum > PHP
Mlodycompany
Witam. Mam pewną klasę którą wywołuje singleton'em. Singleton tworzy 1 obiekt poprawnie, konstruktor wykonuje się tylko raz, a destruktor niestety tyle razy ile pobieram instancję tej klasy. Jak pobiorę ją 3 razy to destruktor 3 razy się wykona. Wiecie może dlaczego tak jest?

PS. Jeżeli będzie potrzebny kod to zamieszczę ale wydaję mi się, że obejdzie się bez tego smile.gif
erix
No jedynie mi pasuje to, że gdzieś klonujesz ten sam obiekt i jest on każdorazowo zwalniany.

Które PHP? Jaki kod do singletona?
Mlodycompany
  1. private static $instance = false;
  2. public static function getInstance() {
  3. if (!self::$instance) {
  4. self::$instance = new klasa();
  5. echo 'instancja';
  6. }
  7. return self::$instance;
  8. }

to jest kod. Echo w nim zawarte printuje się tylko raz czyli instancja jest tworzona raz. I jeszcze mam zabezpieczenie przed klonowaniem
  1. private function __clone(){}



Wzasadzie to już rozwiązałem ten problem w inny sposób, a mianowicie zastąpiłem destruktor zwykłą metodą i wywołałem ją na końcu kontrolera, ale nadal mnie zastanawia dlaczego tak się działo
Crozin
Mógłbyś podać minimalną ilość kodu który rekonstruuje błąd? Tak byśmy mogli to uruchomić u siebie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.