0

すべてのブロックの Template.php は、これらのモジュールに属するすべてのテンプレートに共通のメソッドを定義していますか?

私はこれについてとても興味があります。/Block/Template.php で定義されたメソッドを使用する init.phtml という名前のテンプレートがあります。init.phtml で $this->methodInTemplateBlock() を直接呼び出せる理由がわかりません。誰でも私に説明できますか?前もって感謝します!

4

1 に答える 1

0

メソッドMage_Core_Block_Template::fetchViewを見ると、次のように表示されます。

public function fetchView($fileName)
{
    ...
    try {
        $includeFilePath = realpath($this->_viewDir . DS . $fileName);
        if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
            include $includeFilePath;
        } else {
            Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
        }
    ...
}

ご覧のとおり、テンプレート ファイルの内容は、このクラスに存在するメソッドの本体に直接含まれています。つまり、$this を通じてクラス インスタンスを簡単に参照できます。

于 2012-05-03T08:24:44.420 に答える