Вы когда-нибудь пытались загрузить в память CSV-файл на миллион строк и увидели что-то вроде:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Даже если увеличить memory_limit, ощущение всё равно неприятное: мы держим в памяти весь массив данных, хотя работаем с ним построчно.
Решение? Ленивые вычисления — подход, при котором данные генерируются и обрабатываются только тогда, когда они реально нужны.
В PHP это можно сделать двумя способами: с помощью генераторов (yield) и через Iterator API. Сегодня разберём оба.





