Created Принцип работы (markdown)

Alex Lushpai 2015-10-30 11:40:59 +03:00
parent 50afb19b5f
commit 29c70c107b

@ -0,0 +1,31 @@
Готовое приложение на основе legacy не затрагивает кодовую базу интегрируемого магазина, все операции осуществляются напрямую с БД. В общем случае работа с библиотекой сводится к написанию специфичных для конкретной интеграции sql запросов и обработчиков к ним (в случае с парсингом почты механизм схож, но вместо файла с sql запросом создается файл с поисковым запросом соответствующим [rfc3501](https://tools.ietf.org/html/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