Потоковый экспорт через cursor() экономит память, но обращение к связям модели внутри выгрузки порождает N+1 — тысячи лишних запросов. Разбираем, почему cursor() не спасает со связями и как выгрузить их через lazy() без потери памяти.
Импорт Excel в модели Eloquent обычно превращается в цикл ручного разбора ячеек. Показываем, как withHeadings() и mapping() сводят его к нескольким строкам и как аккуратно привязать «чужие» колонки файла к атрибутам модели.
Laravel Excel падает по памяти на большом экспорте не из-за вашего кода, а из-за архитектуры PhpSpreadsheet. Разбираем, почему чанки не спасают, и как потоковая выгрузка через cursor() держит память постоянной.
Генерация Excel в PHP кажется простой задачей, ровно до тех пор, пока файл не вырастает до сотен тысяч строк, а скрипт не упирается в лимиты памяти или не отваливается по таймауту.
Это статья про философию FastExcelPhp и задачи, которые решает это семейство библиотек.
Зачем нужна библиотека FastExcelWriter, если есть замечательная PhpSpreadsheet? Да затем, что она просто лучше - быстрее, экономнее, лаконичнее!