TGViewer
WebCraft - ремесло веб разработки WebCraft - ремесло веб разработки @web_craft · 5.02K subscribers
Post #3778 2.36K
Оптимизация работы с большими данными в Laravel с помощью Lazy Collections

Lazy Collections и PHP-генераторы - это спасение от перегрузки памяти. В Laravel 11 Lazy Collections стали ещё мощнее благодаря улучшенной интеграции с Eloquent и поддержке асинхронных операций. Это идеально для обработки больших CSV-файлов, импорта данных или работы с огромными наборами записей.

Пример обработки CSV-файла с минимальным потреблением памяти:
use Illuminate\Support\LazyCollection;
use App\Models\User;

LazyCollection::make(function () {
$handle = fopen('large_data.csv', 'r');
while (($row = fgetcsv($handle)) !== false) {
yield $row; // Генератор возвращает строки по одной
}
fclose($handle);
})->chunk(1000)->each(function ($rows) {
// Пакетная вставка в БД
User::insert(
$rows->map(fn($row) => [
'name' => $row[0],
'email' => $row[1],
'created_at' => now(),
'updated_at' => now(),
])->toArray()
);
});


👉@web_craft | #laravel
  • 👍 7
More from @web_craft
  1. Sep 30, 2026Post #3898
  2. Sep 18, 2026Собрали статический сайт. А дальше что? Привычные хостинги для статических сайтов вроде Cl…
  3. May 11, 2026Scroll-driven анимации в CSS постепенно выходят на новый уровень. Раньше для анимаций при…
  4. Jan 9, 2026Post #3797
  5. Jan 9, 2026Параллельное выполнение заданий в очередях Какой метод в Laravel позволяет объединять зада…
  6. Dec 5, 2025И он терпит наши глупости и мы его глупости тоже потерпим. 👉 @web_craft |#юмор
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 →