ну это не просто так взять и рассказать, как реализовать модульную систему, все зависит от ваших потребностей. Я бы порекомендовал не смотреть, как реализована модульная система в других cms, а попробовать покодить под joomla, например, чтобы сориентироваться в потребностях, уже в голове будет какое-то представление, как бы вы хотели видеть модульную систему! своей cms.
Самый простой вариант — это каждому разделу сайта в админке присваивать (страницу, материал, редирект или модуль). Если разделу присвоен модуль, то при переходе в этот раздел, запускается какой-нить handler.php в папке этого модуля, который грузит модели, формирует представление, затем запускает функцию рендеринга отображения, которое выводит шаблон
8. Небольшой размер и минималистичность
9. Хорошая документация
10. Ой… что-то меня понесло
А на самом деле, CMS пишется под предпочтения, например я вижу cms, такой, чтобы разработка под нее была похожа на программирование с использованием QT(на мой взгляд кьют — самый простой и логичный фреймворк)
Самый простой вариант — это каждому разделу сайта в админке присваивать (страницу, материал, редирект или модуль). Если разделу присвоен модуль, то при переходе в этот раздел, запускается какой-нить handler.php в папке этого модуля, который грузит модели, формирует представление, затем запускает функцию рендеринга отображения, которое выводит шаблон
Также рекомендую почитать вот это