Я использую PHP League CSV импортер / экспортер для импорта большого файла CSV в Laravel.Поскольку файл большой, я хотел бы передать его в анализатор CSV и обрабатывать его по одной строке за раз, не загружая каждую строку в память.
Laravel использует flysystem для основной файловой системы, и я используючтобы получить ресурс PHP для исходного CSV.
Что я не понимаю, так это как - если это вообще возможно - я могу передать этот поток ресурсов в League CSV, чтобы он читал одну строку за раз.время для обработки, прежде чем читать в следующей строке.Кажется, из всей документации следует, что файл CSV всегда полностью читается в память, и это то, чего я хочу избежать.
Нужно ли использовать обратные вызовы?Если так, как я могу быть уверен, что ресурс потока читается только по одной строке за раз, а не все сразу?
Я предполагаю, что я начинаю с создания средства чтения потоков?
use League\Csv\Reader;
$reader = Reader::createFromStream($resource, 'r');