Т.е. прежде чем мне написать CMS мне надо "перелопатить" тысячи исходных кодов различных CMS, изучить их, проработать с ними как минимум год чтобы понять как написать правильно свою систему?
Именно так. Я бы даже сказал годика так 3 хотя бы, и пару десятков разных проектов. Важно что бы вы получили разный опыт.
Неужели чтобы написать даже самую простую CMS для личных элементарных нужд придется изучать куча всего другого чтобы выстроилась точная картина о ее разработке?
нет, если вы не будете писать велосипеды и возьмете фреймворк как готовую основу.
но интерес составляет написать самому
Начните с фреймворка:
- библиотека для рендринга шаблонов (буферизация вывода, работа с файловой системой немножко)
- библиотека для маршрутизации запросов (прошаритесь в регулярках)
- библиотека для работы с базой данных (не ORM, начните с Table Data Gateway или DAO хотя бы. Прошаритесь в SQL минимально).
- Ядро, связывающее все это вместе. Желаельно с какой-то концепцией мидлвэров, что бы все остальныекомпоненты ничего не знали о ядре. (прошаритесь в HTTP)
В целом же писать CMS очень и очень скучно и долго. Вы намного быстрее прошаритесь во всем что надо делая отдельные компоненты. Благо сейчас век composer-а и вы можете крутить и вертеть фреймворками как хотите, подменяя чужие компоненты на свои.