esas / cmsgate-core
Common cms payment gate library
v2.2.11
2024-06-18 11:37 UTC
Requires
- php: >= 5.6.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-simplexml: *
- ext-xml: *
- apache/log4php: 2.3.0
- dev-master
- v2.2.11
- v2.2.10
- v2.2.9
- v2.2.8
- v2.2.7
- v2.2.6
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.0
- v1.18.1
- v1.18.0
- v1.17.15
- v1.17.14
- v1.17.13
- v1.17.12
- v1.17.11
- v1.17.10
- v1.17.9
- v1.17.8
- v1.17.7
- v1.17.6
- v1.17.5
- v1.17.4
- v1.17.3
- v1.17.2
- v1.17.1
- v1.17.0
- v1.16.8
- v1.16.7
- v1.16.6
- v1.16.5
- v1.16.4
- v1.16.3
- v1.16.2
- v1.16.1
- v1.16.0
- v1.15.1
- v1.15.0
- v1.14.3
- v1.14.2
- v1.14.1
- v1.14.0
- v1.13.11
- v1.13.10
- v1.13.9
- v1.13.8
- v1.13.7
- v1.13.6
- v1.13.5
- v1.13.4
- v1.13.3
- v1.13.2
- v1.13.1
- v1.13.0
- v1.12.5
- v1.12.4
- v1.12.3
- v1.12.2
- v1.12.1
- v1.12.0
- v1.11.2
- v1.11.1
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0.0
- v0.9.0
- dev-CMSGATE-70
- dev-CMSGATE-68
- dev-CMSGATE-69
- dev-CMSGATE-64
This package is not auto-updated.
Last update: 2024-12-31 14:21:59 UTC
README
Основная библиотека для фреймворка cmsgate. Данный фреймворк будет в первую очередь полезен vendor-ам, которые занимаются интеграцией своих решений (платежных шлюзов, служб доставки) с различными CMS системами (php-based). Основное его назначение
- упростить разработку и поддержку плагинов для интеграции своих продуктов с большим количеством разнообразных CMS, скрывая при этом большую часть внутренних особенностей самих CMS.
Библиотеки (слои)
Любой конечный плагин состоит из 4-х слоев
- core-слой - ядро фреймворка с набором общих для всех плагинов классов. Большая часть классов абстрактны и должны быть переопределены на других слоях
- cms-слой - различные врапперы, лоадеры, helper-ы, обеспечивающие взаимодействие ядра с данными и функциями конкретных CMS
Данные слой представлен ввиде отдельных библиотек, содержащих в имени название соответствующей CMS
- cmsgate-bitrix-lib
- cmsgate-opencart-lib
- cmsgate-prestashop-lib
- и т.д.
- paysystem-слой - протоколы для взаимодействия с API конкретных платежных шлюзов; контроллеры содержащие бизнес-процессы;
враппер для настроек и т.д. Содержит классы, которые важны имеено для взаимодействия с конкретным шлюзом
Данные слой представлен ввиде отдельных библиотек, содержащих в имени название соответствующей платежной системы:- cmsgate-hutkigrosh-lib
- cmsgate-epos-lib
- cmsgate-bgpb-lib
- и т.д.
- cms-paysystem-слой - самый верхний слой, по сути это уже плагин для конкретной cms и конкретной платежной системы
Важно четко разделять эти слои и понимать, к какому слою относится тот или иной функционал. Т.е. paysystem-слой ничего не знает об архитектуре конкретных CMS, а cms-слой не знает про конкретные платежные системы
Основные сущности ядра
- Wrapper - обертки, для взаимодействия между ядром и другими слоями. Все врапперы абстракты и должны быть переопределены
на более высоких слоях
- ConfigWrapper - враппер для настроек конкретной платежной системы. Должен быть переопределен на
paysystem-слое
, для декларации настроек необходимых для взаимодействия с платежной системой (например логины, пароль, api-key и т.д.). Будет содержать настройки, которые не зависят от типа CMS. Например:- ConfigWrapperHutkigrosh (из библиотеки cmsgate-hutkigrosh-lib)
- ConfigWrapperEpos (из библиотеки cmsgate-epos-lib)
За механизм доступа к настройкам в рамках CMS отвечает ConfigStorageСms (относится к
cms-слою
)
- OrderWrapper - враппер для получения информации о заказе (id, сумма, фио клиента, лист продуктов и т.д.). Должен быть
переопределен на
cms-слое
для инкапсуляции внутреннего механизма хранения этой информации в каждой конкретной CMS. То, где хранится номер заказа не зависит от платежной системы, а только от устройства самой CMS. Например:- OrderWrapperOpencart (из библиотеки cmsgate-opencart-lib)
- OrderWrapperBitrix (из библиотеки cmsgate-bitrix-lib)
- OrderWrapperVirtuemart (из библиотеки cmsgate-virtuemart-lib)
- и т.д.
- OrderProductWrapper - враппер для получений информации о товаре, входящем в заказ. По аналогии с OrderWrapper должен быть переопределен на
cms-слое
- ConfigWrapper - враппер для настроек конкретной платежной системы. Должен быть переопределен на
- ConfigStorageCms - класс для получения и сохранения настроек внутри CMS. Должен быть переопределен на
cms-слое
. ConfigWrapper-ы получаются доступ к настройкам через него (хотя, при необходимости, могут и иначе, если переопределить метод ConfigWrapper:getConfig). Например:- ConfigStorageOpencart (из библиотеки cmsgate-opencart-lib)
- ConfigStorageBitrix (из библиотеки cmsgate-bitrix-lib)
- ConfigStorageVirtuemart (из библиотеки cmsgate-virtuemart-lib)
- LocaleLoader - враппер для загрузки текущей локали. Должен быть переопределен на
cms-слое
. Например:- LocaleLoaderOpencart (из библиотеки cmsgate-opencart-lib)
- LocaleLoaderBitrix (из библиотеки cmsgate-bitrix-lib)
- LocaleLoaderVirtuemart (из библиотеки cmsgate-virtuemart-lib)
- ConfigForm - класс для генерации "форм" с настройками. Должен быть переопределен на
cms-слое
. По сути преобразует набор настроек в формат, с которым может работать CMS для отображения их в административной зоне. Т.к. разные CMS могут иметь совсем различные форматы для задания настроек, наследники этого класса на входе получают настройки уManagedFieldsFactory
во внутреннем формате cmsgate (ConfigField*), а на выходе формируют:- уже конечный html код
- массив во внутреннем формате cms
- xml-файл во внутреннем формате cms
- и т.д. Наследники ConfigForm не знают о настройках конкретных платежных система, а "работают" только с типами конфигурационных полей:
- ConfigFieldList
- ConfigFieldFile
- ConfigFieldText
- ConfigFieldPassword
- и т.д.
- ManagedFieldsFactory - factory для гру
- CmsConnector - factory для создания объектов
cms-слоя
. Используется для создания объектов LocaleLoader, OrderWrapper, ConfigStorageCms, ConfigForm - PaysystemConnector - factory для создания объектов
paysystem-слоя
. Используется для создания объектов ConfigWrapper, Translator, ManagedFieldsFactory