Написание собственного View Helper (Truncate)

Zend Framework предоставляет ряд помощников (Helpers), которые используются во view скриптах. К ним относятся, например: хелперы для создания разных HTML элементов, для построения ссылок, для экранирования вывода (escape) и другое. Но иногда возникает необходимость в создании  собственного (custom) view helper. Рассмотрим рекомендации по этому поводу.

Helper представляет собой класс, который должен соблюдать некоторые требования:

  • Имя класса должно заканчиваться именем хелпера
  • Helper должен иметь public метод, имя которого совпадает с именем хелпера
  • Метод не должен использовать echo или print функции – необходимо возвращать значение
  • Необязательная рекомендация: разработчики Zend Framework советуют наследоваьб свой view helper класс от Zend_View_Helper_Abstract или имплементировать интерфейс Zend_View_Helper_Interface (в следующих релизах ZF планируется упростить набор правил для создания custom view helper, которые приведены выше)

Что ж, попробуем написать свой помощник вида.

В Smarty есть модификатор, который отрезает часть текста – truncate. Его можно использовать, например при выводе анонса новостей. Создадим и мы helper, который реализует данный функционал.

  • Создаем класс, который находится по такому пути: library/Custom/View/Helper/Truncate.php (используется классическая структура директорий Zend Framework)

  • Добавляем путь к view хелперам в нашем bootstrap файле

После этого наш хелпер готов к употреблению ))) В скрипте вида используем его так:

P.S.: данный helper корректно работает с любой кодировкой (iconv рулит, но можно и заменить на multibyte string functions)

  • Побольше бы возможностей этому помощнику, например, научить бы его не рвать слова – он был бы действительно полезным!

  • admin

    Согласен, можно доработать.