l3ftoverz
@l3ftoverz
Люблю Финский металкор

Как правильно изменить архитектуру кода, что бы добавить ещё одного «поставщика»?

Текущая структура: https://github.com/d0kur0/random-webm/tree/master/...
Использование: https://github.com/d0kur0/random-webm/blob/master/...

Сейчас у меня есть 1 поставщик, а я хочу сделать их несколько.
API и структура ответа у всех разная, поэтому я хочу сделать ещё один уровень в пространстве имён и сделать структуру по типу:

Сейчас:
App\Daemon\Collectors\BoardsCollector
App\Daemon\Collectors\ThreadsCollector
App\Daemon\Collectors\VideosFromThreadCollector

И примерно так же с реализацией Transport, а хочу сделать:

App\Daemon\Collectors\A\BoardsCollector
App\Daemon\Collectors\A\ThreadsCollector
App\Daemon\Collectors\A\VideosFromThreadCollector


...

App\Daemon\Collectors\B\BoardsCollector
App\Daemon\Collectors\B\ThreadsCollector
App\Daemon\Collectors\B\VideosFromThreadCollector


Т.е. у каждого поставищка будет своя реализация и Transport, и Collectors, но тогда как это по-нормальному использовать? Дублировать код не очень хорошо, я вижу вариант с циклом в index.php, где я буду итерировать какой-то массив список типа:

$vendors = [
  'A',
  'B'
];


И в теле цикла на основе ключа вызывать классы из нужного пространства имён, но мне это не очень нравится.
Нормально ли делать так? Как лучше? Видите ли какие-то проблемы в текущем коде?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы