7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Laravel 5

Как создать хелпер в Laravel

Read Time: 10 mins

Russian (Pусский) translation by Masha Kolesnikova (you can also view the original English article)

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

Laravel включает в себя множество глобальных «вспомогательных» функций PHP. Многие из этих функций используются самим фреймворком; Однако вы можете использовать их в своих приложениях, если сочтете их удобными.

Итак, в основном, хелперы в Laravel - это встроенные служебные функции, которые вы можете вызывать из любого места вашего приложения. Если бы они не были предоставлены самим фреймворков, вы, возможно, в итоге сами бы создали собственные вспомогательные классы.

Хотя ядро предоставляет множество хелперов, всегда есть шанс, что вам понадобятся ваши собственные, и вы бы хотели их написать, чтобы вам не нужно было дублировать один и тот же код здесь и там, тем самым обеспечивая лучшую поддержку своему приложения. Вы узнаете, как создать пользовательский хелпер Laravel в этом уроке.

Хелперы в Ларавеле

Как мы обсуждали ранее, в основе структуры Laravel имеется множество хелперов. Они группируются в зависимости от функциональности, которую они предоставляют. Вот список вспомогательных групп.

Массивы

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

Пути к папкам и файлам

Я считаю, что хелперы из этой категории наиболее полезные. Они возвращают полностью квалифицированный путь из разных каталогов, таких как app, storage, config и т.п. Бьюсь об заклад, вы уже используете большинство этих хелперов в своем приложении Laravel.

Строки

Обработка строк - это нечто неизбежное в вашей повседневной разработке приложений. Хотя существует множество функций манипуляции строками, предоставляемых самим PHP, в этой группе вы найдете еще несколько полезных.

URL-адрес

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

Разное

Эта категория содержит хелперы, которые предоставляют множество функций: от регистрации до отладки и многие другие.

Для полной справки по хелперам Laravel нет лучшего места, чем официальная документация.

Создайте свой первый пользовательский хелпер

Теперь у вас есть основное понимание хелперов Laravel и для чего они используются. В этом разделе я расскажу, как вы можете создать свой собственный хелпер, который можно использовать глобально в вашем приложении Laravel.

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

Я предполагаю, что у вас есть таблица пользователей в вашей базе данных, и у нее есть как минимум два поля: userid и username.

Скелет хелпера Laravel

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

  • App/Helpers/Envato/User.php: Это наш вспомогательный файл, который содержит логику нашего хелпера.
  • App/Providers/EnvatoServiceProvider.php: это настраиваемый файл поставщика услуг, который загружает наш пользовательский вспомогательный файл.
  • config/app.php: В этом файле мы объявим нашего специализированного поставщика услуг, а также здесь мы  определим псевдоним для нашего хелпера, чтобы нам не пришлось  нашего помощника.
  • routes/web.php: довольно стандартный файл маршрута Laravel, где мы будем тестировать нашего хелпера.

Создание файлов хелпера

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

Итак, двигаемся дальше, создайте каталог Helpers/Envato в директории app и создайте файл User.php со следующим содержимым. Конечно, вы можете разместить его непосредственно в каталоге app или app/Helpers, но дополнительный уровень вложенности позволяет нам удобно организовать наших хелперов, особенно когда у вас их будет много.

Файл начинается с довольно стандартного объявления пространства имен:

Цель нашего пользовательского хелпера - получить имя пользователя на основе идентификатора пользователя. Следовательно, нам нужно взаимодействовать с базой данных, поэтому мы должны подключить DB Facade.

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

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

Объект $user хранит запись базы данных с соответствующим идентификатором пользователя. Наконец, метод возвращает имя пользователя в качестве ответа в следующем выражении.

Это касается нашего вспомогательного файла.

Теперь мы создали наш вспомогательный файл, но вопрос в том, как вы собираетесь его использовать? Мне приходят два быстрых решения:

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

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

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

Вы должны увидеть сообщение, подтверждающее, что поставщик успешно был создан в каталоге app/Providers.

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

Метод register используется для регистрации ваших зависимостей, и мы это точно сделали. Мы включили наш пользовательский вспомогательный файл.

Вот как должен выглядеть файл app/Providers/EnvatoServiceProvider.php после внесенных изменений.

Так что пока все хорошо. У нас есть наш пользовательский хелпер и поставщик услуг для него.

Затем нам нужно сообщить Laravel о нашем поставщике услуг, чтобы он мог загрузить его во время начальной загрузки. Давайте откроем файл config/app.php и добавим следующую запись в массив providers в конце.

Чтобы использовать наш хелпер удобным способом, мы могли бы создать псевдоним. Итак, давайте сделаем это, добавив следующую запись в массив aliases в конце в том же файле.

Определив эту запись, мы можем вызвать наш хелпер, используя ключевое слово EnvatoUser. Довольно удобно, не правда ли? Для справки, вот полный файл config/app.php.

Мы почти сделали это! Мы сделали всю тяжелую работу, чтобы добраться до этого места, и теперь мы можем воспользоваться преимуществами нашего специального хелпера.

Ваш первый пользовательский хелпер в действии

Опять же, чтобы все было просто и понятно, мы определим базовый маршрут Laravel и вызовем наш хелпер!

Идем дальше и создаем файл route/web.php со следующим содержимым.

Это вообще нуждается в объяснении? Мы только что вызвали пользовательский помощник по сокращению EnvatoUser::get_username, и он должен вернуть имя пользователя.

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

На этом наша история заканчивается сегодня.

Вывод

Хелперы в Laravel - действительно мощная функция, и я уверен, что в качестве разработчика вы бы хотели дальше развить эту тему. И это была тема сегодняшнего дня - мы рассмотрели основы файловой структуры хелпера Laravel и создали полезный пользовательский хелпер.

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

Не стесняйтесь оставлять свои комментарии и запросы в ленте ниже. Я также комментирую мой Twitter и отвечаю на них, как только могу!

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.
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.