Pipelines в Laravel. Для тех кто не знал.

preview_player
Показать описание
Для тех, кто не знал. Как использовать pipeline для реализации фильтров в проектах на Laravel.

#Pipelines#laravel#cutcode
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------
⏰ Таймкоды:
0000 Введение
0033 Обзор проекта
0204 Документация о pipelines
0433 Реализация фильтра с pipeline
0842 Проверка работы и подведение итогов

Всех поклонников Laravel я приветствую на канале CutCode! Сегодня у нас снова рубрика "для тех кто не знал", в которые будут давать небольшие советы либо демонстрировать фичи из мира laravel, livewire и так далее кто-то мог о них не знать, а кому-то они надеюсь даже пригодятся! Не забудьте об этом поделиться в комментариях и обязательно прожать лайк - я буду крайне благодарен! А мы начинаем погнали!

Друзья сегодня мы разберемся с вами с пайплайнами, пайпами. Вы меня об этом уже просили, но я успешно об этом забыл. Но в последнем ролике из рубрики "плохой, хороший код" я получил плохую оценку от одного из комментаторов, но ему все равно спасибо за то что напомнил про пайпы. И сейчас мы последуем его совету и переделаем наш подход с фильтрами в сторону пайплайнов. На мой взгляд в данном случае польза это нам не даст и в конце я объясню почему, но в целом это хороший пример. Те кто не понимают о каких фильтрах идёт речь советую посмотреть рубрику "плохой, хороший код" о фильтрах и вернуться назад. Но бегло я и сейчас расскажу что у нас было. Итак есть у нас фильтры их много все они реализованы через отдельные классы. Давайте откроем код - которые у нас подключаются в сервис провайдере. А далее в скопе у модели мы их все перебираем и применяем тем самым трансформируем наш queryBuilder, добавляя необходимые запросы. Вот так просто через foreach и здесь в целом мы можем переделать этот foreach с трансформацией запросов через пайпы. Для начала давайте поговорим что такое pipelines и почему у большинства с ними проблемы? Здесь все просто и если мы уйдем в документацию и поищем pipelines то мы толком ничего не найдем. Давайте попробуем - итак мы видим что есть методы, связанные с пайпами в рамках коллекций и строк, но также знаем что это всего лишь обвертки, как тот же мэп или фильтр что просто обвертка над нативным array map либо array фильтр и все это с fluent интерфейсом исключительно для нашего с вами удобства. Получается что в итоге мы все равно не понимаем что такое пайпы и чтобы понять нам необходимо заглянуть в другой раздел документации а именно api documentation здесь описан весь интерфейс фреймворка и думаю после того как новичок сюда заглянет он сразу же и сбежит. Понять что здесь происходит не так просто. Но давайте попробуем и поищем пайпы здесь вот похожий на pipelines класс. Да друзья это необходимый нам класс для реализации пайплайна. Проходясь по его методам мы находим здесь метод Send, необходимый для отправки объекта через pipeline и метод true с указанием всех пайпов через которые пройдет этот объект.

---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:

📼 Курс по Laravel с нуля:

Pipelines в Laravel. Для тех кто не знал.

---------------------------------------------------------------------------------
Рекомендации по теме
Комментарии
Автор

Да, наглядность получившегося кода - хуже, чем foreach, согласен. Но я просто обожаю такие красивые лаконичные решения :)
Боюсь что не смогу удержаться от использования Пайплайна.

Спасибо брат ты красавчик! Лучи добра тебе

RuslanMavlyanov
Автор

Дык это же паттерн Chain of Responsibility (Цепочка обязанностей) походу! На рефакторинг.гуру есть пример.
А так то спасибо за краткое хорошее овервью

RuslanMavlyanov
Автор

Вижу cutcode, ставлю лайк не глядя 👍
Спасибо

miodgrx
Автор

Супер! Мне очень понравилось то видео про рефакторинг фильтров, а про пайпы я и не знал, спасибо!

MrDmistas
Автор

Спасибо за полезный урок) Радует что у вас растет уровня и качество контента.

ivan_adamovich
Автор

как всегда лайк 🙂 Автору большое спасибо за ваши труды, очень интересно смотреть 🙂😃

gamingplay
Автор

можно фильтрацию просто через цепочку обязанностей сделать, а можно еще через декорацию. У каждого варианта свои +/-

kkama
Автор

Спасибо что уделили внимание моему комментарию :) Очень приятно :) Видео познавательное и интересное, но все равно мне показалось мало информации о пайпах: где и почему используются в ларе. Если кому-то интересно почитать доступную статью с примерами на данную тему, почитайте у demiart статью, там три части. Благодаря ей я узнал о что такое пайпы и с чем их едят)

Ну и комментарий о том, что другой, не очень опытный, программист не поймёт что это и как это работает - притянуто за уши. Эта тему очень довольно просто доступно объяснить, а уж загуглить тем более)

manzadey
Автор

Тут самое же главное, что как в middleware (которые под капотом через пайпы и реализованы), мы можем решать, вызвать нам next, не вызывать, когда вызывать, что делать с результатом и т.п.

nujzsbs
Автор

It's like a decorator and the same style is used in Laravel middleware. And of course, your last comment was on point, it's not that readable. But still thank you, cause it was a good example.

smiley
Автор

Пока не понял его пользы, но за труд спасибо!

rpyocTb
Автор

Наверное стоило упомянуть о паттерне цепочка ответственности, по сути пайплайн реализация этого паттерна, но с небольшими наворотами.

TheRedesc
Автор

Про статистику: И 50% кто подписан не смотрят) Спасибо за труды!

Al_Bel
Автор

Может выгода этого подхода и не велика, но для расширения сознания нужно попробовать.

YaroslavlCity
Автор

Классное видео. А в handle при применении apply не надо получать ответ чтобы дальше его пробросить?

toxageek
Автор

Добрый день. Подскажите, пожалуйста, будет ли туториал по написанию полноценного функционала данной (или похожей) фильтрации у Вас на канале? Спасибо.

eugeney
Автор

Интересно, а pipline которые сам фреймворк использует это те-же piplines что в видео рассматривают?

eb
Автор

Не понял, изменили нижнюю границу диапазона стоимости с 0 до 400, и не нашлось ни одного результата, но до применения фильтра полным полно терапевтов со стоимостью выше 400.
Объясните, пожалуйста.

modestusmunh
Автор

Пример о трубах на дороге вообще плохой. уж лучше конвейер на заводе привести.

mirokko