У меня есть класс, который действует как обертка для Smarty, но хочет использовать его статически в моем приложении.Может ли статический класс расширить нестатический класс и получить доступ к его методам?
Моя установка выглядит примерно так:
class Template extends Smarty {
public function __constructor() {
parent::__constructor();
}
public function setSettings() {
$this-> some smarty settings here
}
public static function loadTpl($tpl) {
self::$tplFile = $tpl;
// other logic
self::setSettings(); // this won't get executed because it uses non static method calls.
}
}
Как я могу обойти это?
Статический метод можно вызывать только статические методы. Там не обойти это. Когда вы переходите к 'setSettings', что вы ожидаете от' $ this'? Нет связанного объекта. –
Почему вы хотите, чтобы это называлось статически? Вместо этого вы можете создать объект Singley Smarty. –
Eli, не могли бы вы взглянуть: http://stackoverflow.com/questions/12436203/assigning-defaults-for-smarty-using-object-oriented-style –