2 Принцип работы
Alex Lushpai edited this page 2018-05-15 09:30:43 +03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Готовое приложение на основе legacy не затрагивает кодовую базу интегрируемого магазина, все операции осуществляются напрямую с БД. В общем случае работа с библиотекой сводится к написанию специфичных для конкретной интеграции sql запросов и обработчиков к ним (в случае с парсингом почты механизм схож, но вместо файла с sql запросом создается файл с поисковым запросом соответствующим rfc3501.

В общем случае схема интеграции следующая:

  1. Создается конфигурационный файл с необходимыми настройками доступа к БД, API и пр.
  2. Создаются пары sql-файл(ы) + handler-класс(ы) для выполнения конкретной операции
  3. В cron вносятся настройки запуска app.php с соответствующими параметрами для выполнения каждой конкретной команды.

Следует учитывать, что команда history несколько отличается в реализации, так как handler получает на вход не результат sql запроса, а результат запроса к API, в результате чего выполенени sql запроса и передача параметров в него выполняется непосредственно в данном handler'e (sql запрос, тем не менее, хранится в отдельном файле).

Структура проекта

app.php

Основной выполняемый скрипт. На вход получает набор параметров, определяющих, какая операция будет выполнена

bootstrap.php

Класс автозагрузки, подключается в app.php

src

Директория, содержащая базовые классы. Подразумевается, что данные классы остаются неизменными, в случае необходимости изменить логику какого-либо метода в любом из этих классов создается дочерний класс в директории bundle/extend

bundle

Основная рабочая директория, содержит классы-наследники базовых классов, классы-обработчики, sql файлы, содержащие необходимые запросы, txt файлы с параметрами поиска писем (все эти файлы создаются под каждую конкретную интеграцию)

data

Директория которая содержит конфигурационые файлы, логи, а так же генерируемую выгрузку каталога в формате ICML