Содержание


View Helpers


View Helpers, url(), htmlList()



В скриптах вида Вы будете часто использовать определенный часто повторяющийся функционал для таких целей, как: форматирование даты, генерация элементов формы, отображение ссылок и многие другие. Для этих целей Вы можете использовать помощники видов, различные плагины или свои классы.

Помощники -  это просто классы, реализующие интерфейс Zend\View\Helper. В каждом помощнике есть всего два метода: setView(), который принимает экземпляр класса Zend\View\Renderer и getView(), который используется для получения этого экземпляра. Zend\View\PhpRenderer  создает брокер плагинов и позволяет осуществлять доступ к помощникам видов, перегрузке некоторых методов помощников.

Пример: представим, что у нас есть класс -  помощник MyHelperLowerCase, который мы подключаем в брокер плагинов под именем «lowercase».  Использование/загрузка этого помощника осуществляется одним из возможных вариантов:

// $view is a PhpRenderer instance
 
// Via the plugin broker:
$broker = $view->getBroker();
$helper = $broker->load('lowercase');
 
// Retrieve the helper instance, via the method "plugin",
// which proxies to the plugin broker:
$helper = $view->plugin('lowercase');
 
// If the helper does not define __invoke(), the following also retrieves it:
$helper = $view->lowercase();
 
// If the helper DOES define __invoke, you can call the helper
// as if it is a method:
$filtered = $view->lowercase('some value');

В этих примерах наглядно показывается возможность перегрузки метода для получения/использования помощника реализуя  удобный API.

«Из коробки» в ядре Zend Framework 2 есть довольно большое количество различных помощников. Однако при необходимости Вы можете создавать свои уникальные помощники , легко подключать и использовать их в процессе создания ВЕБ-приложения.

Доступные  помощники видов

Есть помощники для создания роутов на основе URL, списков  HTM, объявления переменных. Также обеспечен богатый набор помощников для рендеринга различных  HTML <head> тегов, таких как HeadTitle, HeadLink, HeadScript. Выше перечисленные помощники также включают:

1) url($name, $urlParams, $routeOptions, $reuseMatchedParams): создает строку URL, основанную на имени роута. $urlParams должен быть ассоциативным массивом, а пары key/value массива должны указывать на конкретные роуты.

2) htmlList($items, $ordered, $attribs, $escape): создает упорядоченный/неупорядоченный список на данных, полученных в $items. Если $items является многомерным массивом, то будут построены и вложенные списки. Если $escape установлен в TRUE (default/по умолчанию), то пункты списка будут проэкранированы. Если хотите реализовать разметку в списках установите этот флаг в FALSE.


Автор статьи: DuB