Финальное задание международной цифровой олимпиады «Волга-IT`22».
- PHP версии 8.0
- Установленный Git
- Установленный Composer
- Локальный сервер для запуска проекта
Зайти в папку для установки проекта
cd namefoled
Клонировать репозиторий
git clone https://github.com/YouMixx/parsing-csv-products.git .
Произвести установку зависимости пакетов
composer install
Переименовать .env.example в .env и прописать в нем актуальные данные от БД.
Произвести миграции
php artisan migrate
Сгенерировать ключ
php artisan key:generate
Запустить сервер
php artisan serve
Запуск скрипта осуществляется следующей командой:
php artisan import:handler {filename} {chunk}
{filename} - название CSV файла, который необходимо загрузить в папку /storage/public/
{chunk} (необязательный параметр, по умолчанию 1000) - взависимости от лимита памяти на вашей устройстве, можно указать количество записей для одновременной вставки в БД (чем больше - тем быстрее будет выполняться скрипт, но больше съедать памяти).
Для теста в хранилище уже есть два CSV файла (demo-data.csv и demo-data-small-csv).
P.s. - product_id - является уникальным полем. При необходимости со стороны пользователя, можно загружать CSV файлы с дублирующими и более актуальными данными. Парсер добавит новые продукты и обновит старые.
App\Console\Commands\ImportHandler - основная команда для импорта CSV файла в БД.
App\Http\Controllers\HandlerController - контроллер для вывода данных по запросу getProduct