Сергей: Это никому не нужно, для отслеживания изменений давно придумали системы контроля версий. А ходить рекурсивно по папкам в проекте с 6000 файлов (возьмите любой современный фреймворк) и сверять их даты - то ещё извращение.
IsaevDev: У вас же небольшой проект, сколько в нем классов, чтобы что-то повесить? А если вы добавите новый класс в проект, будете вручную лезть и ставить $inited = false? Если очень хочется карту классов, сделайте её в обычном файле, который возвращает массив, и подключайте в нужном месте. Нет файла - пусть генерируется, а при добавлении классов файл можно будет просто удалить. И не нужно будет заменять никакие переменные.
Статью 2003 года вы считаете приличным источником, серьезно? Читайте лучше неоднократно упоминаемый www.phptherightway.com/. А из вопроса не очень понятно, для чего конкретно вы собираетесь или нет использовать ООП. Одно дело домашняя страничка с тремя статьями, другое - интернет-магазин или информационный портал.
Все тоже самое, но шторм не ругается. Bad practice не всегда возможно формализовать, IDE может попытаться указать вам на ошибки в коде, но не может предусмотреть всех возможных вариантов написания кода. В данном случае переменная $row за пределами условия не используется и ни к каким ошибкам не приведет.
Arris: Ваш "хитрый" враппер совершенно замечательно пропускает sql-инъекции. Очень советую почитать следующую статью и поблагодарить FanatPHP за то, что он все подробно разжевал.
FanatPHP, не мешайте человеку писать фреймворк. Он еще спросит у вас, как реализовать свою extract(), как переназначить id всем юзерам при удалении первого из БД, и что же всё-таки быстрее: select * или select count(*).