From 29c70c107b0a5fd55533dbc5cb93bfe1e670919f Mon Sep 17 00:00:00 2001 From: Alex Lushpai Date: Fri, 30 Oct 2015 11:40:59 +0300 Subject: [PATCH] =?UTF-8?q?Created=20=D0=9F=D1=80=D0=B8=D0=BD=D1=86=D0=B8?= =?UTF-8?q?=D0=BF=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Принцип-работы.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Принцип-работы.md diff --git a/Принцип-работы.md b/Принцип-работы.md new file mode 100644 index 0000000..8ec0c98 --- /dev/null +++ b/Принцип-работы.md @@ -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 \ No newline at end of file