Skip to content

Проект разработанный для финала международной цифровой олимпиады «Волга-IT`22» - Дисциплина «Веб-разработка (PHP)»

Notifications You must be signed in to change notification settings

YouMixx/parsing-csv-products

Repository files navigation

О проекте

Финальное задание международной цифровой олимпиады «Волга-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

About

Проект разработанный для финала международной цифровой олимпиады «Волга-IT`22» - Дисциплина «Веб-разработка (PHP)»

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages