LazyCollections и PHP генераторы. Как применять на практике

Этот ролик посвящен PHP генераторам и LazyCollection. На примере посмотрим как генераторы могут оптимизировать работу памяти. Уделим внимание где используются генераторы в laravel, как нам их удобно использовать и когда. #LazyCollections#PHP#laravel#cutcode --------------------------------------------------------------------------------- 🚀📹👨‍🏫 Как насчет прокачки своих навыков с помощью наших обучающих видеокурсов по web-разработке? Переходи на мой сайт 👇 ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - --------------------------------------------------------------------------------- Всех поклонников laravel я приветствую на канале CutCode! Сегодня мы поговорим про PHP генераторы. Про это страшное слово vield и снова реализуем пример, который делают все и каждый в обучающих роликах и статьях. С огромным массивом, который сформирован функцией Range. Но друзья я вас обманываю и на самом деле мы этим заниматься не будем. Есть тысячи уже роликов о генераторах и их чудесном влиянии на память. Все они в рамках примера с массивом, построенным на функции Range. То же самое и про статьи, и про саму документацию. И все вы уже много раз это видели. А кто не видел рекомендую посмотреть или почитать. Но думаю в итоге после изучения вы останетесь довольны - все понял. Но где применять, когда применять все еще знать не будете. И спустя пару часов вовсе о них забудете. Поэтому мы чуток их суть обсудим, буквально парой предложений, но поговорим о конкретном применении. Где они используются в laravel, как нам их удобно использовать и когда. Ну что ж, погнали! Друзья проблемка. Нам скажем нужно повзаимодействовать с моделями и на их основе что-то посчитать к примеру. И нужны именно модели с кастами и прочим. У нас есть сущность - мы забираем все записи - в данном случае там 10к записей. Сам процесс мы делаем где-нибудь в консольной команде по расписанию и что-то в какой-то сущности высчитывая. В итоге такой запрос у нас на выходе сформируют коллекцию из десяти тысяч моделей. Обратите внимание сколько памяти нам под это потребовалось - аж 30 мегабайт. А здесь только 10к записей. Если говорить о SQL запросах и query builder, то нам на помощь может прийти метод cursor. Давайте им воспользуемся вместо All, а далее углубимся в сам метод. И здесь мы увидим что работает он как раз на генератора вот наш любимый vield. А помогает ему не просто коллекция а Lazy коллекция. --------------------------------------------------------------------------------- 📹 делитесь этим видео с друзьями: 🔔 подпишитесь на YouTube-канал: 📼 Курс по Laravel с нуля: НАЗВАНИЕНАЗВАНИЕНАЗВАНИЕ --------------------------------------------------------------------------------- 🔗 наш сайт: 📱 Наш telegram-канал:
Back to Top