Общее:
Либо не пользуйся phpDoc, либо пиши сначала функцию, а потом документацию. А если меняешь функцию - позаботься о том, чтобы документация ей соответствовала. Сейчас у тебя функция делает одно, а в документации написано другое.
Коментарии: не нужно дублировать phpDoc(Response.php/headers: "Массив", "вида `имя заголовка` => `значение`", "@var array", "array()".)
Используется cp1251. Зачем этот динозавр? В нем есть недостати относительно utf-8, но достоинств нет.
Нравится потом свои convertEncoding и win2utfSc вызывать?
И это при наличии:
PHP:
// Язык по умолчанию. Применяется для выбора i18n и т.д.
$Base_Registry['config']['lang'] = 'ru';
Если других языков
технически не предусмотрено, то зачем всякие i18n, которые не заработают?
Далее, если ты выкладываешь код - то выкладывай на английском. Или тебе нравится читать комментарии на финском или китайском? Имена типа ПодатОбжавление(Controller_PodatObjavlenie) не доставляют. Как вариант - полностью на русском пиши, но не смешивай тогда уж несколько языков.
index.php
Сообщение об ошибке захардкожено. А это очевидный шаблон.
Зачем пользователю видеть фатальную ошибку и дебаг-информацию? Вы все по одной дурацкой книге учились, в которой написано, что разработчик - единственный пользователь?
В try блоке нужно писать только то, что нужно. Зачем ты в нем контекст определяешь, если там не может произойти ошибки. А если может - то зачем в catch вызываешь метод контекста, который может быть не определен?
Сообщение об ошибке будет выведено в кодировке сервера по умолчанию.
Request.php
Коментарии доставляют. Написано одно, функция делает другое. "Очищает массив $in от пробелов и слэшей."
PHP:
trigger_error(__CLASS__ . '::' . __METHOD__ . ': Недопустимый тип ' . $type);
throw? У тебя 2 разных типа обработки ошибок.
При наличии
PHP:
ini_get('mysql.default_host')
ты делаешь проверку на magic quotes и их очищение. Зачем, когда можешь просто их отключить и не городить ненужный код?
Base.php
Зачем нужны собаки?
Основное: MVC.
Слишком нагружено(Смотри отличия ZF2 от ZF1 на хабре). Ненужная неработающая интернационализация. Ненужные врапперы и т.д. Все можно сделать проще и в меньшее количество кода.
И наконец: АДСКИЕ ШАБЛОНЫ! Освой лейауты. Ты в каждом шаблоне пишешь одно и то же, хотя по сути можешь изменять только небольшую часть. У тебя огромное количество дубликатов. ОГРОМНОЕ. НЕПОМЕРНОЕ.
Как заключение скажу, что на мой взгляд код хороший. Кроме неработающей i18n и отвратительного View, опять же субъективно.