Свою писать можно, но это долго и муторно, но зато интересно. В любом случае вы будите базироваться на уже готовых библиотеках которые себя хорошо зарекомендовали, а также многие фреймворки их используют: fast route, league container, league fractal, twig, monolog, symfony debug, symfony request, symfony console и ORM.
В основном, я по крайней мере обращаю внимание при работе с фреймворком это ORM. Так вот ни в одном нет нормальной ORM, более менее нормальная это doctrine orm, но она сложна. Мой выбор это Propel2 ORM.
Я свою CMS начинал писать на основе этого репо
https://github.com/mmeyer724/Frameworkless