правильно - HMVC хотя бы. А лучше вообще думать в сторону чего-то поинтереснее.
Ну и да, норм фронт контроллер (PSR-7 совместимый или symfony/httpkernel совместимый), нормальная библиотека для маршрутизации (fastroute подойдет но я хз как там с расширяемостью, я бы предложил symfony/routing как наиболее гибкую). Ну и расширение функциональности при помощи декораторов/адаптеров/композиции классов. Все на интерфейсах и минимум наследования, делать все системные классы final.
Вот.