TGViewer
Библиотека задач по PHP | тесты, код, задания Библиотека задач по PHP | тесты, код, задания @php_problems_lib · 2.32K subscribers
Post #1552 494

Forwarded from Библиотека собеса по PHP | вопросы с собеседований

Что такое Lazy Collections в Laravel?

Обычная Collection загружает всё в память сразу. При работе с большими объёмами данных — это проблема.

// ❌ Загрузит ВСЕ записи в память
$users = User::all()->filter(...)->map(...);

// ✅ Lazy Collection — обрабатывает по одной записи через генератор
User::cursor()->filter(function (User $user) {
return $user->is_active;
})->each(function (User $user) {
ProcessUser::dispatch($user);
});


cursor() использует PDO fetchRow под капотом — в памяти одновременно одна запись.

Lazy Collection из файла:

// Обработка огромного CSV без OutOfMemoryError
$collection = LazyCollection::make(function () {
$handle = fopen('huge_file.csv', 'r');
while ($row = fgetcsv($handle)) {
yield $row;
}
});

$collection->skip(1)->chunk(100)->each(function ($rows) {
ImportBatch::dispatch($rows->toArray());
});


Когда использовать

10k+ записей в обработке → cursor() + LazyCollection
Файлы, стримы, внешние API с пагинацией → LazyCollection с генератором

Важно: методы типа count() и last() материализуют коллекцию. Их лучше избегать в lazy-контексте.
  • 🔥 6
  • ❤ 1
More from @php_problems_lib
  1. Sep 15, 2026Что будет результатом кода? 👍 — world hello 👾— FiberError 🥰— hellohello world ❤️— hello…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Aug 5, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
  4. Aug 5, 2026Один доступ вместо вечного выбора между «нужно для работы» и «давно хотелось изучить» 👇
  5. Aug 4, 2026Post #1654
  6. Jul 30, 2026🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →