Подмодули в модульной структуре, или как спроектировать модуль Merchant?
С недавних пор работаю только с модульной структурой, стараюсь делать красивую архитектуру проекта, хоть и не всегда получается.
Разбирая и пересматривая некоторые cms на фраэмворках, я замечал, что никто не пользуется вложенными модулями.
Я бы хотел на примере разобрать модуль merchant и получить советы и рекомендации от опытных разработчиков.
К примеру у нас есть задача реализовать модуль Merchant (я выбрал именно этот модуль, так как у меня 100500 раз возникали с ним проблемы). Задачи данного модуля следующие:
- История денежного оборота
- Переводы средств
- Вывод средств
- Счета
- Пополнение счета
- интеркасса
- робокасса
- киви
- и тп.
Как лучше всего спроектировать структуру такого модуля ? Разбивать ли его на подмодули или вообще этот модуль разбивать на несколько отдельных модулей ?
Ну я бы вынес счета, переводы средств, вывод средств и пополнение счета в отдельный, главный модуль, а вот историю денежного оборота в модуль зависящий от предыдущего, и платежки тоже каждую отдельным модулем зависящим от главного.
1. Делайте WRAPPER в виде библиотеки с несколькими, перекрывающимися (общими) среди всех ваших подключенных платежных систем, методами.
2. Распихиваете по подпапкам все API от платежных систем.
3. Настраиваете wrapper на вызов API из нужной папки в зависимости от свойств (paymentSystem=YandexMoney).
4. Делаете транзакцию (читайте как правильно делать!)
5. Profit!