В Joomla есть пример компонента Hello Word.Доступ к методу класса PHP в Joomla
В моделях:
class HellowWorldModelHelloWorld extends JModel
{
Protected $message;
Public function getMsg()
{
if (!isset($this->message))
{
$this->message = 'Hello World';
}
return $this->message;
}
}
в соображениях:
class HelloWorldViewHelloWorld extends JViewLegacy
{
function display($tpl = null)
{
$this->msg = $this->get('Msg');
if (count($errors=$this->get('Errors')))
{
JLog::add(implode('<br/>',$errors),JLog::WARNING, 'jerror');
return false;
}
parent::display($tpl);
}
}
Теперь мой вопрос, как это работает, насколько я узнал, я не могу сделать это ниже код
$this->msg = $this->get('Msg');
Первый $this->msg
- msg
объект не определен нигде в классе или в родительском классе. Таким образом, как msg
определяется путем прямого доступа к $this->msg
Второй метод в модели определяется как function getMsg()
. Поэтому я думаю, что он должен быть доступен как $this-getMsg()
(но он не работает), но к нему обращаются как $this-get('Msg')
, и он работает нормально.
Подробный ответ на примере поможет мне правильно понять, чего я не вижу.