Поэтому я некоторое время думал об этом и задавался вопросом, работает ли вообще моя функция инициализации. Это связано с идеей объекта инициализация в Zend Framework.
Предположим, у меня есть такой базовый класс:
class Base{
public function __construct(){
$this->init();
}
public function init(){}
}
Теперь давайте предположим, что у меня есть класс из этого, который должен принять параметр параметров в конструкторе. Почему бы вам не использовать функцию инициализации в родительском классе, я понятия не имею, но этот пример основан на реальном коде, которым я не могу поделиться.
class ExtendsBase extends Base{
private $_options;
public function __construct($options){
parent::__construct();
$this->_options = $options;
}
// Why even instantiate this if never using it?
public function init(){
parent::init();
}
}
Итак, оттуда нам нужно расширить это и фактически заполнить init некоторыми вещами.
class EchoHello extends ExtendsBase{
public function init(){
parent::init();
echo "hello"; exit;
}
}
И тогда мы должны быть в состоянии сделать это:
$someVar = new EchoHello(array());
// Instantiate should echo hello and exit.
Проблема в том, что echo "hello"; exit;
никогда не выполняется. Что-то не так с цепочкой наследования?