Тому якщо необхідно додати велику кількість товарів власники магазинів використовують спеціальні скрипти з імпорту, які в лічені секунди або ж хвилини додадуть в магазин кілька тисяч товарів. Звичайно, що розробляється магазин повинен підтримувати скрипти подібного роду.
Для всіх сучасних CMS, які використовуються для створення магазинів, написані додаткові модулі або розширення з імпорту / експорту товарів, які можуть бути як вбудованими, так і поставлятися окремо на платній або безоплатній основі. Але для самописного движка інтернет магазину вищевказаний функціонал доведеться описувати самостійно. Тому в даному уроці ми з Вами напишемо невелику веб-додаток, який реалізує імпорт товарів CSV.
Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком
Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2
Звичайно, створюваний скрипт буде не складний і по суті, ні буде прив'язуватися до реального движку, тому як у кожного з Вас різні завдання і показати створення універсального інструменту в рамках парочки уроків просто неможливо. Я хотів би розглянути принцип імпорту товарів, тобто, що б Ви побачили, як це можна зробити, і можливо це допоможе Вам у вирішенні деякої реальної завдання.
Отже, в даному уроці ми будемо розглядати імпорт товарів в форматі CSV, тобто вся інформація про додаються товари міститиметься в спеціальному файлі з розширенням .csv.
Формат CSV - це простий текстовий формат, призначений для представлення різних табличних даних. Тобто завдяки йому, складна таблиця може бути збережена у вигляді простого тексту, з специфічним форматуванням. CSV - це абревіатура, утворена першими англійськими словами - Comma-Separated Values - значення, розділені комами. Синтаксис зазначеного формату передбачає, що кожен рядок файлу - це один рядок таблиці. Дані, які зберігаються в колонках, відокремлені один від одного знаком коми (,).
Але погодьтеся, що кома - це символ, який звичайно ж може зустрічатися в тексті, як знак пунктуації, тому на практиці, часто використовують в якості роздільників інші знаки, наприклад - крапка з комою (;), що власне ми з Вами і зробимо. В цьому випадку, правильно б назвати формат - DSV (delimiter-separated values - значення розділені роздільником), але на сьогоднішній день під поняттям CSV - розуміють набір певних текстових значень розділених певним роздільником.
Як було сказано вище, створювати скрипт ми будемо з чистого аркуша і по суті реалізуємо зчитування даних документа CSV і запис отриманої інформації в таблицю "products" бази даних.
Структура таблиці наступна:
Формат CSV дуже легко отримати, використовуючи в якості вихідної таблиці - таблицю Microsoft Excel. Звичайно, Ви можете запитати - навіщо перетворювати таблицю в спеціальний формат, якщо можна здійснити імпорт, читаючи вміст кожного елементу таблиці. І за великим рахунком - Так, ми можемо це зробити. Але при цьому доведеться використовувати додаткову бібліотеку по роботі з документами Excel. У свою чергу формат CSV - простий текстовий формат, який легко і швидко читається мовою PHP, без будь-яких додаткових інструментів.
Тепер припустимо, що постачальник передав нам наступний документ з інформацією про доступні товари:
Як Ви бачите кожен рядок таблиці - це окремий товар. При цьому в колонках, розташовується інформація, яка повинна бути збережена в відповідні поля таблиці "products".
Тепер давайте перетворимо цю таблицю в формат CSV, для цього переходимо в меню "Файл", далі вибираємо пункт "Зберегти як".
Потім при збереженні вибираємо формат CSV (роздільники-коми).
Зверніть увагу, що файл буде збережений в кодуванні Windows-1251, тому для подальшої роботи необхідно змінити кодування на UTF-8. Тепер можна приступати до створення функціоналу майбутнього скрипта.
Фреймворк YII2. Швидка розробка з сучасним PHP фреймворком
Дізнайся тонкощі сучасної веб-розробки за допомогою фреймворка YII2
Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі