Laravel локальный диск append () занимает много памяти - PullRequest
0 голосов
/ 13 февраля 2019
Storage::disk('local')
         ->append('/newsletter_lists/'.$contact_file_name.'.csv',
                $contact->email.','.$contact->salutation.','.$contact->lastname.','.$contact->unsubscribelink.','.$contact->bonus
          );

Это код в Laravel, который пишет в CSV-файл внутри цикла foreach (загрузка чанка из базы данных).Но, насколько мне известно, метод append() - это каждый раз открывать файл, загружать содержимое в память, добавлять новую строку и снова сохранять файл, что с большим количеством записей (65 000) занимает много времени.Я пытаюсь найти способ добавить файл в конец файла без загрузки содержимого в память, если это возможно, или я использую неправильный подход?

1 Ответ

0 голосов
/ 04 марта 2019

Я воспользовался советом @ d3L и использовал обычный php для добавления к файлам, а не для использования метода append () laravel, который загружает контент каждый раз, когда ему нужно добавить строку.

$file = fopen(Storage::disk('local')->path('test.csv'), "a+b");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...