Вся работа с файлом инкапсулирована в одном обьекте.
В констуктор необходимо отправить часть пути для конкатенации к пути вашего хранилища.
А так же (опционально) часть имени файла с которого будет начинаться имя архива.
- Создаем и конфигурируем хелпер
clearStorage()
- Очищаем хранилище от файлов прошлой выборкиprepareExportReturnArticles( $dateFrom, $dateTo )
- Иниируем получение данных и нарезка их на файлы используя чанкиmakeArchive( $dateFrom, $dateTo )
- Упаковка результата в архив ( use default http://php.net/manual/en/book.zip.php )downloadFile()
- Возврат содержимого архива сразу в клиент, без генерации ссылки для скачивания
Делал без ссылки из секьюрных соображений. Нечего юзеру вообще пути видеть.
$storage = new ExportReturnArticlesFileHelper('export/return_articles', 'return_articles_');
$storage->clearStorage();
$storage->prepareExportReturnArticles( $dateFrom, $dateTo );
$storage->makeArchive( $dateFrom, $dateTo );
$storage->downloadFile();