Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> singleton - nie można pobrać instancji w klasach dziedziczonych
czychacz
post 28.04.2012, 14:59:16
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


problem polega na tym, że przy próbie uruchomienia skryptu dostaję błąd:
Cytat
Allowed memory size of 134217728 bytes exhausted (tried to allocate 43 bytes)

w projekcie stworzyłem 4 singletony. dwa z nich podczas tworzenia ustalają sobie jakieś parametry (ale to chyba nie jest ważne). dalej - w projekcie posiadam klasę "_controller". inne klasy mogą z niej dziedziczyć. gdy próbuję odpalić kod, który zawiera tworzenie obiektu $a (klasy "lol" dziedziczącej po "_controller"), dostaję wyżej wymieniony błąd.
poniżej klasa controller:
  1. class _controller{
  2.  
  3. protected $engine = null;
  4. protected $view = null;
  5. protected $db = null;
  6. protected $config = null;
  7.  
  8. public $defaultAction = 'index';
  9.  
  10. public function __construct(){
  11. $this->engine = _engine::getInstance();
  12. $this->view = _view::getInstance();
  13. $this->db = _db::getInstance();
  14. $this->config = _config::getInstance();
  15. }
  16.  
  17. }

a tu jeden z singletonów:
  1. <?php
  2.  
  3. class _view{
  4.  
  5. static private $instance;
  6. static public function getInstance(){
  7. if(is_null(self::$instance))
  8. self::$instance = new _view();
  9. return self::$instance;
  10. }
  11. private function __construct(){}
  12. private function __clone(){}
  13.  
  14. }
  15.  
  16. ?>

czy ktoś wie, w czym może być problem?
edit: dodam, że po wywaleniu kodu odpowiedzialnego za przypisanie zawartości w konstruktorze klasy "_controller" wszystko idzie normalnie. kod "getInstance" jest prawie taki sam w każdym singletonie (nie licząc nazwy klasy przy wywołaniu "new").

Ten post edytował czychacz 28.04.2012, 15:01:04
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 14:59