43. Башка, скорость у тебя, конечно, впечатляет! Плюс, ты как Цезарь, параллельно выполняешь несколько вещей. Пишешь, объясняешь и продумываешь что-то наперед. Я так не могу.
От себя добавлю, я бы добавил в проект директорию \templates, которая должна хранить .tpl шаблоны. В пакет \libraries - статический класс шаблонизации, используемый в пакете \view. Ну и, само собой, роутинг, куда уж без него. И для общей кошерности не хватает класса кеширования, который бы проверял наличие кеша комнаты или выбранного сообщения и при его отсутствии дергал класс БД для получения информации.
У меня структура немного отличается от приведенной у тебя, хотя общего все равно много.
В директории \apps лежат поддиректории \models, \controllers, \view и \libs. Классы всех моделей хранятся в \models, всех контроллеров - в \controllers. И т.д. В \libs хранятся классы по работе с PDO, куками, шаблонизатор, роутер и прочие общие классы.
Алгоритм примерно такой:
- при HTML запросе дергается роутер, в котором обрабатываются все входящие данные, обрабатываются ошибки и определяется модель, необходимая для обработки запроса;
- запускается контроллер, обрабатывающий именно эту модель;
- контроллер запускает модель и получает из нее результат ее работы;
- после получения информации из модели, контроллер запускает вид, в который передает то, что отдала модель;
- Задача вида - принять то, что передал в нее контроллер, подключить шаблонизатор и отдать ему данные.
- Шаблонизатор выводит все на страницу. Профит.
Все что касается PDO, сессий, кук и прочего - использую аналогичный подход как в твоем примере.
Изменил: Дмитрий (05.12.2013 / 00:22)