Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 2.23 KB

parser.md

File metadata and controls

49 lines (35 loc) · 2.23 KB

Парсер

Парсер позволит загрузить все данные и сохранить их в указанное место. Может делать одновременно несколько асинхронных запросов к API, что сократит время ожидания постраничной загрузки.

Для возобновления работы парсера, если что-то пошло не так, в конструктор нужно передать параметер metaFilename. Который представляет собой полный путь до файла.

Если вы хотите заново загрузить данные, достаточно вызвать метод reset() перед методом run(). В случае вызова run(false) парсер проигнорирует текущую позицию.

Объект хранилища должен реализовать интерфейс \SimaLand\API\Parser\StorageInterface

Пример использования парсера

Выкачивание данных каталога

$client = new \SimaLand\API\Rest\Client([
    'login' => 'login',
    'password' => 'password',
    'regulation' => true
]);

$parser = new \SimaLand\API\Parser\Parser(['metaFilename' => 'path/to/file']);

// добавляем список категорий
$categoryStorage = new \SimaLand\API\Parser\Json(['filename' => 'path/to/category.txt']);
$categoryList = new \SimaLand\API\Entities\CategoryList($client);
$parser->addEntity($categoryList, $categoryStorage);

// добавляем список товаров
$itemStorage = new \SimaLand\API\Parser\Json(['filename' => 'path/to/item.txt']);
$itemList = new \SimaLand\API\Entities\ItemList($client);
$parser->addEntity($itemList, $itemStorage);

$parser->run();

Возобновление после сбоя (сетевые проблемы, ошибки сервера и т.п.)

// забываем текущую позицию и начинаем парсинг заново
$parser->reset();
$parser->run();

// игнорируем текущую позицию и начинаем парсинг заново
$parser->run(false);