О скрипте каталога и фреймворке для него

Во время последнего заезда на дачу обдумывал, как сделать свой скрипт каталога сайтов. Вернулся к тому, о чём думал во времена начала работы над IntB 3.x в 2007 году — хранить все сущности, которые могут быть выведены в виде Web-страниц, в одной таблице: сами сайты, категории, подборки по формату сайтов, пользовательские подборки, вспомогательные фильтры, теги и т.п. По сути, у всего этого атрибуты одинаковые: название, описание, HURL, владелец, основной текст, дата создания и последней модификации, а также поле для сериализованных специфических атрибутов. Но в отличие от IntB, где предполагалась чисто иерархическая структура, предусмотреть таблицу для возможности связывать сущности произвольно. К тому же, как выяснилось, современные версии MySQL и Postgres позволяют хранить такие атрибуты в виде JSON с возможностью выборки по атрибутам внутри JSON и даже создавать по этим атрибутам индексы!
Потом мысль пошла дальше — решил сделать собственный микрофреймворк, взяв за основу тот код, который я писал для движка MLCE в прошлом году. И потом на нём реализовать и каталог сайтов, и мобильное сообщество, и, возможно, в дальнейшем вернуться движку для сообщества идеалистов, только переделать его на SQL вместо MongoDB. Но потом застрял на вопросе, использовать ли namespaces и загромождать код противоестественными конструкциями вида \MLFW\App\Router или \MLFW\Models\Entity или писать в духе CMS двухтысячных, используя namespaces только для указания путей, где искать необходимые классы (то есть Models\Entity или Templates\MainPage).