Mógłby mi ktoś bardziej wytłumaczyć dziedziczenie? Z tego co wiem taki kod powinien działać:
class Controller { public $language; public $smarty; public $input; public function initialize(){ $this->smarty = new Smarty; $this->protectRequest(); $this->setLanguage(); $this->distribute(); } private function setLanguage(){ require_once('class/language.php'); $language = new Language; $this->language = $language->setPageLanguage(); } private function protectRequest(){ $this->input['get'] = Utils::protect($_GET); } $this->input['post'] = Utils::protect($_POST); } $this->input['cookie'] = Utils::protect($_COOKIE); } } private function distribute() { $page = $this->input['get']['page']; $this->loadPage($page); } else { $this->loadPage(Config::defaultPage); } } public function loadPage($page){ l($this); require_once (Config::controllerDir.'/'.$page.'.php'); new $page; } } class Index extends Controller{ function __construct(){ l($this); } }
l(); to taki var_dump na sterydach. Jak widzicie dump'uje $this przed wywołaniem, wypluwa mi to co oczekiwałem, lecz gdy dump'uje w klasie index mam same pola z klasy Controller lacz są w nich nule. Czemu przy rozszerzaniu nie przenoszą się ich wartości? I co ważniejsze co zrobić aby się przenosiły?