У меня были похожие мысли при разработке собственного движка CMS. В конце концов я получаю то же самое решение, что и вы, но с Smarty, для разделения логики и представления.
Но теперь через некоторое время у меня другое и намного лучшее решение. Используйте Шаблон команды . Вам нужно будет разделить ваш код на классы, а не на файлы, как вы это сделали. Вы должны установить командный интерфейс, который будут реализованы всеми вашими классами. Таким образом, ваша страница администратора будет действовать как Front Controler (еще один шаблон дизайна).
Ответственность Front Controler заключается в сборе всех входных данных с вашей страницы, то есть в вашем случае $ _GET ["action"], в соответствии с этими действиями вам придется создавать экземпляры объектов Command, а после этого оператора switch вы будете вызывать $ command -> Execute (); который выполнит код, содержащийся в ваших классах Command.
В качестве примера вы будете иметь: EditPageCommand, DeletePageCommand, NewPageCommand и т. Д.
Избегайте разделения кода в файлах. Попробуйте использовать классы для всего и выучить шаблоны. ;)