Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wywoływaniem metod i zawartością
Forum PHP.pl > Forum > PHP > Object-oriented programming
tV2
Napisałem sobię prosty system do obsługi modułów dla swojego frameworka i napotkałem pewien problem. Otóż w pliku głównym mam taki o to kod:

  1. <?php
  2. $this -> moduleObject = new Controller();
  3. $this -> moduleObject -> setActions($this -> actions);
  4. $this -> moduleObject -> getRegistry();
  5. var_dump($this -> moduleObject);
  6. ?>


Klasa abstract_moduleController:
  1. <?php
  2. abstract class abstract_moduleController
  3. {
  4.    protected $registryObject;
  5.    protected $sessionController;
  6.    protected $actions;
  7.    
  8.    public function getRegistry()
  9.    {
  10.        $this -> registryObject = core_registry::getInstance();
  11.        $this -> sessionController = sessionController::getInstance();
  12.    }
  13.    
  14.    public function setActions($actions = array(''))
  15.    {
  16.        $this -> actions = $actions;
  17.    }
  18. }
  19. ?>


Klasa controller:

  1. <?php
  2. class controller extends abstract_moduleController
  3. {
  4.    public function __construct()
  5.    {
  6.        var_dump($this);
  7.    }    
  8. }
  9. ?>


var_dump($this -> moduleObject); zwraca:
Cytat
]object(controller)#13 (3) { ["registryObject:protected"]=> object(core_registry)#2 (1) { ["cache:private"]=> array(0) { } } ["sessionController:protected"]=> object(sessionController)#3 (1) { ["registry:private"]=> object(core_registry)#2 (1) { ["cache:private"]=> array(0) { } } } ["actions"]=> array(3) { [0]=> string(3) "sfs" [1]=> string(2) "ss" [2]=> string(2) "az" } }


Natomiast var_dump($this); w samej klasie-
Cytat
object(controller)#13 (3) { ["registryObject:protected"]=> NULL ["sessionController:protected"]=> NULL ["actions:protected"]=> NULL }


Spodziewanym dla mnie efektem byłoby zwrócenie tej samej zawartości w obu przypadkach. Gdzie popełniam błąd?

Z góry dziękuję.
ziqzaq
Robisz var_dump() przed ustawieniem akcji (w konstruktorze).
O to ci chodzi?

edit:
dół: spoko, niekiedy najprostsze błędy są trudne do rozpoznania po kilku(nastu) godzinach przed monitorem winksmiley.jpg
tV2
Temat do zamknięcia... (tak to jest po parunastu godzinach przed komputerem). W sumie to się tak cały czas zastanawiałem, dlaczego nie mam dostępu do akcji w konstruktorze.
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.