Задать вопрос

Прошу конструктивной критики на мой код на PHP

Приветствую! Так сложилось, что повышаю навыки программирования я полностью самостоятельно, и ввиду специфики работы код мой никто не проверяет. Поэтому прошу раскритиковать меня, чтобы я мог разобрать ошибки и поработать над ними. Я понимаю, что чтение чужого, мягко говоря, не очень хорошего кода отнимает много времени, но все же надеюсь, что найдутся доброжелатели, которые укажут мне на мои ошибки и повысят качество моего кода.
Давно задумывался, уместен ли данный вопрос на данном ресурсе, прочитав вопрос все-таки решился опубликовать.
Некая система, которую я пишу сейчас.
Небольшое тестовое задание, которое я недавно делал.
  • Вопрос задан
  • 2730 просмотров
Подписаться 9 Оценить 1 комментарий
Ответ пользователя wartur К ответам на вопрос (9)
wartur
@wartur
— Пользуйтесь константой DIRECTORY_SEPARATOR.

— Глобальные переменные это печально, они нарушают паттерны проектирования, создавая костыли, я из использую исключительно для прикручивания временного костыля, потому что вот прижало, но надо сделать, потом рефакторю через паттерны.

— Db::initDb — а зачем в этом случае пользоваться фабрикой??? Мы же объект создаем, то есть должно быть new DB(); чисто по идее ООП. И кстати, если нет совершенно особой функциональности у ваших классов, то не надо вообще оборачивать стандартные функции. У меня например класс базы данных абстрагирует физические подключения к СУБД, и переключения между БД в одной СУБД. К нему обращаются разные объекты указывая лишь название «шлюза» (я так это назвал), а класс уже гарантирует что запрос будет произведен по нужной СУБД + БД. Еще раз в вашем случае не вижу смысла использовать фабрику (у меня испольуется фабрика, что бы просто создавать объекты с вшитым «шлюзом»).

Советую делать так вначале инициализации:
// директория с системой
define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR); // корень ядра.
// директория с кодом движка
define('DIR_CORE', DIR_ROOT.'core'.DIRECTORY_SEPARATOR);
// директория с интерфейсами движка
define('DIR_CORE_INTERFACES', DIR_CORE.'interfaces'.DIRECTORY_SEPARATOR);

========

я могу тут целый пост по моей культуре производства писать, но пожалейте меня ;-) надеюсь помог.

// директория с исключениями движка
define('DIR_CORE_EXCEPTIONS', DIR_CORE.'exceptions'.DIRECTORY_SEPARATOR);

// директория с абстрактными модулями движка
define('DIR_CORE_ABSTRACT', DIR_CORE.'abstract-modules'.DIRECTORY_SEPARATOR);
Ответ написан