rame0 / yandex-market-object
Yandex Market YML generator
0.5.2
2021-03-10 14:24 UTC
Requires
- php: ^7.4 || ^8.0
- ext-xmlwriter: *
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-10 21:48:15 UTC
README
Генератор YML-файла для ЯндексМаркета и других сервисов Яндекс, использующих формат YML.
Библиотека создана для упрощения создания YML файлов для ЯндексМаркета и снижения потребления памяти необходимой для его генерации за счет опции выгрузки данных из памяти в файл по мере создания.
Установка
composer require rame0/yandex-market-object
Базовое использование
use rame0\Generators\YandexMarket\Category; use rame0\Generators\YandexMarket\Currency; use rame0\Generators\YandexMarket\Offer; use rame0\Generators\YandexMarket\YML; // Инициализация $yml = new YML('MyShop', 'MyCorp', 'https://www.site.ru/'); $yml->setDate(strtotime('2021-03-08T17:20:28+00:00')); // Начало записи $yml->startYML(); // Добавление валют $yml->startElement('currencies'); $yml->writeItem(new Currency(Currency::$CUR_RUB)); $yml->endElement(); // Добавление категорий $yml->startElement('categories'); $yml->writeItem(new Category(1, 'cat1')); $yml->writeItem(new Category(2, 'cat2')); $yml->writeItem(new Category(3, 'cat3', 1)); $yml->endElement(); // Добавление оферов $yml->startElement('offers'); $yml->writeItem(new Offer(1, 'Товар 1', 1)); $yml->writeItem(new Offer(2, 'Товар 2', 2)); $yml->writeItem(new Offer(3, 'Товар 3', 3)); $yml->writeItem(new Offer(4, 'Товар 4', 3)); $yml->writeItem(new Offer(5, 'Товар 5', 1)); $yml->endElement(); // Завершение записи $yml->endYML(); // Вывод результата echo $yml->flush();
Сохранение в файл
use rame0\Generators\YandexMarket\YML; $yml = new YML('MyShop', 'MyCorp', 'https://www.site.ru/'); $yml->setDate(strtotime('2021-03-08T17:20:28+00:00')); $yml->setOutputFile('./test.yml'); //...
Сохранение в файл "на лету"
use rame0\Generators\YandexMarket\YML; $yml = new YML('MyShop', 'MyCorp', 'https://www.site.ru/'); $yml->setDate(strtotime('2021-03-08T17:20:28+00:00')); $yml->setOutputFile('./test.yml'); // Выводить в файл на лету $yml->setIsOutputOnTheFly(true); // Выводить через каждые 100 добавленных записей $yml->setFlushEvery(100); //...