Advertisement
  1. Code
  2. PHP

Программирование с Yii2: Помощники

Scroll to top
Read Time: 5 min
This post is part of a series called How to Program With Yii2.
Programming With Yii2: Routing and URL Creation
Programming With Yii2: Using Ajax

Russian (Pусский) translation by Anna k.Ivanova (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Если вы спрашиваете: «Что такое Yii?» то ознакомьтесь с уроком Знакомство с Yii Framework, в котором рассматриваются преимущества Yii и которое включает в себя обзор Yii 2.0.

Что такое помощники?

В серии уроков Программирование с Yii2 я рассказываю своим читателям о фреймворка Yii2 для PHP. В этом уроке я приведу краткий обзор помощников. В Yii помощники - это модули, которые, среди прочего, группируют обычно полезные библиотеки для управления строками, файлами, изображениями, URL и HTML, и их легко расширить.

Я также расскажу о примере создания помощника в Планировщике собраний, в серии про стартап Envato Tuts +.

Прежде чем мы начнем, пожалуйста, помните, я стараюсь участвовать в обсуждениях ниже. Если у вас есть вопрос или предложение по теме, пожалуйста, напишите комментарий ниже или свяжитесь со мной в Twitter @reifman.

Если вы заметили пробел между эпизодами серии Программирование с Yii, это потому, что в прошлом году мне пришлось провести операцию на головном мозге. Благодарим вас за терпение и поддержку. Приятно регулярно писать, и я с нетерпением жду продолжения освещения Yii2.

Библиотеки Yii2 Helper

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

  • ArrayHelper упрощает обработку массивов с помощью таких функций, как безопасное отображение значений, отображение, слияние и т.д.
  • Console поддерживает функции командной строки, собирает ввод и выводит цветной текст.
  • FileHelper расширяет основные функции управления файлами PHP.
  • FormatConverter преобразует различные форматы, в основном, даты на данный момент.
  • Html программно генерирует часто используемые теги HTML.
  • HtmlPurifier очищает входной текст от пользователей для повышения безопасности.
  • Imagine предоставляет функции манипуляции с изображениями, предоставляемые расширением yii2-image.
  • Inflector предоставляет полезные строковые функции для общих преобразований.
  • Json кодирует и декодирует данные JSON.
  • Markdown конвертирует markdown в HTML.
  • StringHelper расширяет основные функции PHP для строк.
  • Url помогает с программным созданием URL-адресов и запоминанием их для навигации.
  • VarDumper предоставляет расширенную функцию var_dump.

Обычно в своих приложениях Yii я использую помощники Html и Url. И, помните, я использовал помощника Imagine в Пишем свой стартап на PHP: настройки пользователя, изображения профиля и контактные данные для масштабирования загруженных изображений профиля.

Давайте кратко рассмотрим некоторых из менее известных помощников.

ArrayHelper

Programming with Yii - Array Helper MethodsProgramming with Yii - Array Helper MethodsProgramming with Yii - Array Helper Methods

Как вы можете видеть, ArrayHelper предоставляет несколько полезных функций, ориентированных на массив.

Например, getValue упрощает поиск значений из ключей в сложных массивах:

Или map() создает простой массив ключей из более сложного массива:

HtmlPurifier

Programming with Yii Helpers - Example Demo of HtmlPurifierorg LibraryProgramming with Yii Helpers - Example Demo of HtmlPurifierorg LibraryProgramming with Yii Helpers - Example Demo of HtmlPurifierorg Library

Вы можете использовать HtmlPurifier для повышения безопасности обработки ввода пользователя. Например, если кто-то вставляет код инъекции SQL в вашу форму, как указано выше, очистка его с помощью HtmlPurifier нейтрализует любую атаку.

Он использует библиотеку HTML Purifier library.

StringHelper

Programming with Yii - String Helper MethodsProgramming with Yii - String Helper MethodsProgramming with Yii - String Helper Methods

StringHelper предоставляет некоторые расширенные методы работы со строками в PHP. Например, truncateWords() может уменьшить строку до определенного количества слов, но также сохранить правильный HTML в результате.

Создание собственного помощника

Для Планировщика собраний мне понадобилось создать базового помощника, который я мог бы использовать. На данный момент я объединил все в один, называемый MiscHelpers.php:

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

Полезно создавать их один раз в одном месте, а не переписывать их по-разному в моделях по мере необходимости.

Я создал MiscHelpers.php, создав файл в /common/components и создав класс, который я мог бы вызвать во всем приложении.

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

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

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

По мере того, как планировщик собраний растет, я, вероятно, создам множество помощников, более традиционно организованных вокруг актуальных вопросов.

В заключение

Yii Helpers полезны. И, будучи занятыми программистами, мы, возможно, не знаем, что они существуют. Надеюсь, вы видели некоторые вспомогательные функции в рамках модулей Yii выше, которые со временем станут полезными для вас. И я надеюсь, что команда Yii продолжает расширять их с каждым обновлением.

Надеюсь, вы также подумаете о том, как создавать собственные помощники в своих приложениях, а не дублировать общие методы в каждой модели.

По мере того, как серия Yii2 прогрессирует, я все чаще приветствую запросы на новые темы. Вы можете опубликовать их в комментариях ниже или отправить мне письмо по электронной почте на моем веб-сайте Lookahead Consulting.

Если вы хотите узнать, когда выйдет следующий учебник Yii2, подпишитесь на меня @reifman в Twitter или проверьте мою страницу инструктора. Моя страница инструктора будет включать все статьи из этой серии, как только они будут опубликованы.

Чтобы изучить более продвинутое приложение Yii2, ознакомьтесь с нашей серией статей о Планировщике встреч. Приложение теперь находится в альфа-релизе, и вы можете планировать встречи с друзьями. Вы также можете загрузить код; это приложение с открытым исходным кодом.

Ссылки по теме

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.