Как работает блок и шаблон в Magento - PullRequest
4 голосов
/ 01 марта 2011

Я работал с magento некоторое время, и есть некоторые детали, которые я пытаюсь понять, как это работает, блокировать и шаблоны, например, часть, которую я не понимаю, как работает, это то, что вы можете сделать это в шаблоне (файл .phtml)

$this->getFunctionName();  

это означает, что в блоке, которому был присвоен этот шаблон, есть функция с таким именем.
Я пытаюсь написать простой пример, просто чтобы посмотреть, как это работает, но я не могу понять, до сих пор, у меня просто есть головной убор.
Как возможно, что вы можете использовать $ this в файле .phtml для вызова функций блока? Кажется, что .phtml является частью объекта, верно?

спасибо

Ответы [ 2 ]

3 голосов
/ 02 марта 2011

Когда файл include / require 'в PHP, вы можете в большинстве случаев предполагать, что код внутри него встроен в вызывающий файл.Следовательно, вся область (включая $this) наследуется файлом шаблона.

3 голосов
/ 01 марта 2011

Проверьте метод fetchView в Mage_Core_Block_Template, файлы шаблона включены в этот метод и имеют доступ к классу.Выходная буферизация используется для сбора выходных данных шаблона, а не для отображения шаблона, как он включен.

...