JoomlaのHello Wordコンポーネントの例があります。モデルでJoomlaのPHPクラスメソッドへのアクセス
:ビューで
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
が定義されるか、直接アクセスすることによって設定されるか$this->msg
第2に、モデルのメソッドはfunction getMsg()
と定義されています。だから私はそれが$this-getMsg()
としてアクセス可能であるべきだと思う(しかし、それは動作しません)が、それは$this-get('Msg')
としてアクセスされており、正常に動作しています。
詳細な回答を参考にすれば、私が迷っていることを正しく理解するのに役立ちます。