Скрипты видов
После того, как ваш контроллер определил переменные и вызвал
метод Переменные, устанавливаемые в контроллере для скрипта вида, являются свойствами экземпляра Zend_View. Например, если контроллер установил переменную 'something', то в скрипте вида вы можете ссылаться на нее следующим образом: $this->something. Это дает возможность отслеживать, какие переменные были установлены извне для скрипта, и какие были установлены в самом скрипте. Ниже приведен пример скрипта вида из введения:
Экранирование выводаОдной из наиважнейших задач, которую должен решать скрипт вида, является обеспечение того, что вывод должным образом экранирован; помимо прочего, это помогает предотвратить XSS-атаки. За исключением тех случаев, когда используются функции, методы или помощники, которые сами производят экранирование, вы должны всегда экранировать переменные, когда выводите их.
Zend_View снабжен методом
По умолчанию метод
Функции или методы обратного вызова должны принимать значение, которое требуется экранировать, как первый параметр, все остальные параметры должны быть необязательными. Использование других шаблонизаторовХотя PHP сам по себе представляет собой мощный шаблонизатор, многие разработчики считают его избыточным или сложным для верстальщиков и предпочитают использовать другие шаблонизаторы. Zend_View предоставляет два пути для этого: первый - через скрипты вида, второй - посредством реализации интерфейса Zend_View_Interface. Шаблонизаторы c использованием скриптов видовСкрипт вида может использоваться для инстанцирования и манипулирования отдельным объектом шаблона (это могут быть шаблоны в стиле PHPLIB).
Это может соответствовать следующему файлу шаблона:
Шаблонизаторы с использованием Zend_View_InterfaceНекоторые считают более удобным использовать совместимый с Zend_View шаблонизатор. Zend_View_Interface предоставляет минимально необходимый для совместимости интерфейс:
Используя этот интерфейс, относительно легко сделать "обертку" для шаблонизаторов сторонних разработчиков. В примере показан вариант "обертки" для Smarty:
В этом примере вы можете инстанцировать класс Zend_View_Smarty вместо Zend_View и использовать его так же, как используется Zend_View.
|