Реализация глобальных нестатических вспомогательных функций в Symfony 1.4

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

По умолчанию Symfony 1.4 имеет много вспомогательных функций, доступных (почти) для всего проекта, например url_for, link_to и т. д. Если вам нравится этот стиль, вы должны знать, что вы можете создавать помощников одного и того же типа, не создавая везде одинаковую функцию.

Создание и использование помощников

Чтобы раскрыть помощников глобально в вашем проекте, вам нужно создать вспомогательный каталог внутри yourproject/lib, Внутри этой папки вы можете создать столько вспомогательных файлов, сколько вы хотите, которые содержат столько вспомогательных методов, сколько вам нужно, единственное условие — имя файла заканчивается на * Helper, например, если вы хотите создать вспомогательные функции, связанные с манипулирование строками, мы бы создали файл с именем StringHelpers.php внутри каталога lib. Там вместо класса вы должны создавать простые функции PHP. Например, мы включим метод, который выделяет данное слово внутри строки HTML, используя span:

Имея этот метод, вы можете получить к нему доступ (или к ним, если их много в вашем файле помощника), включив помощника с помощью метода use_helper, где вы хотите его использовать. Например, внутри представления вы можете просто сделать:


Hello world

echo highlight_word_inside_html("

Hello world

", "world"); ?>

Как вы можете видеть, с помощью помощников вы пишете, так сказать, простые методы PHP, и они могут использоваться везде в вашем проекте. Чтобы узнать больше о методе use_helper в Symfony 1.4, пожалуйста, прочитайте официальную документацию.

Ссылка на основную публикацию
Adblock
detector