$this->view->$template = 'default.tpl';
var_dump($this->view->$template);
этот код вызывается в контролере, выводит Fatal error: Cannot access empty property in X:\home\dev\www\application\controllers\DefaultController.php on line 7, хотя по идее должно выводить default.php
классы
<?php
class View{
public $template = null;
public $layout = null;
protected $_obj = null;
public function __construct($template = null, $layout = null) {
$this->template = $template;
$this->layout = $layout;
$lib = Config::get('tpl.lib');
$this->_obj = new $lib;
}
public function __call($method, $params) {
call_user_func_array(array($this->_obj, $method), $params);
}
public function __set($name, $value) {
$this->_obj->assign($name, $value);
}
}
?>
<?php
abstract class Controller implements ControllerInterface{
public $request = null;
protected $_view = null;
//это как бы ленивая инициализация
public function __get($name) {
if ($name == 'view') {
if (is_null($this->view)) {
$this->_view = new View();
}
return $this->_view;
}
}
}
?>
задача кода - экземпляр класса въюхи создается во время первого обращения к $this->view из контроллера.
$this->view->template = 'название шаблона' - один из вариантов указать из контролера вьюхе какой шаблон надо будет рендерить
во View::$_obj хранится экземпляр класса шаблонизатора
весь лишний код урезал, в чем моя ошибка?