Я работаю над проектом, который имеет конечное смутно определенное требование: «Сайт должен быть скиновым для других клиентов».
Как мы все знаем, почти всегда нужно вносить изменения в пользовательский интерфейс, логику и модель.
Я объяснил, что потребуется работа для добавления другого клиента на сайт, и что это будет не так просто, как создание нового скина. Я также объяснил, что невозможно проектировать для неизвестного и неопределенного.
При этом я хотел бы придумать дизайн, который пригоден для повторного использования без излишней сложности.
Я бы хотел иметь возможность использовать как можно больше контроллеров и представлений.
Я думал о попытке загрузить другой набор маршрутов (указывающих на разные контроллеры) на основе URL-адреса, который пользователь использует для входа на сайт (это вообще возможно?). Я думал, что могу определить набор базовых контроллеров и наследовать их для каждого подузла.
Есть ли лучший способ сделать то, что я пытаюсь сделать?
Может ли это быть сделано с контейнером IoC? Есть ли преимущества у такого подхода?
Как другие обрабатывают ситуации, когда одна кодовая база MVC должна совместно использоваться и в основном повторно использоваться между различными сайтами?
Спасибо за любой совет или вклад!