получает текущий URL, ищет его во вьюхе БД
Вот тут переделать бы что бы он искал в контроллере, или там уже всё сделано и это невозможно
ID страницы для последующей запуска нужного контроллера (так должно быть)
Не совсем так должно быть, когда у нас есть id страницы то мы уже точно знает какой контроллер и action нужен, пример из klein-роутера:
$klein->respond('GET', '/[:controller]/[:action]/[:id]', function ($request) {
id вообще не важно какой тут, controller и action уже определены
справочник типов страниц, как тогда определить необходимый метод
Так же через справочник очевидно просто он будет иметь 2 колонки, контроллер и метод
Как после обращения в БД, узнать какой контроллер мне нужен
В идеале, как я написал выше вы знаете controller и action ещё до обращения в БД, но раз пошла такая пьянка, то можно сделать как угодно, хоть каждому ID в БД персонально прописать controller и action, которые должны его обрабатывать.