Как сделать фреймворк с архитектурой как в Yii?
наплюйте на принципы единой ответственности и инверсии зависимостей, влепите сингелтон и вуаля! Ах да, и не забудьте про один базовый класс аля CObject или CComponent для вообще всего что есть во фреймворке (ну или в большей части его частей).
А если серьезно, то зачем? В целях обучения? Если так, то может имеет смысл сразу почитать литературу на эту тему? Сразу больше всего откроете для себя.
@Fesor 
Что можете порекомендовать почитать? Я хочу сделать себе маленький фреймворк, для собственных нужд, маленькие заказы и прочее. Чисто своё - приятнее же. :)