Вступить в клуб →
лёгкаявопросLegacy-код, SOLID и статический анализ

Функции legacy-модуля получают базу через global $db

function getOrderTotal(int $orderId): float
{
    global $db;
    $rows = $db->query("SELECT price, qty FROM order_items WHERE order_id = $orderId");
    ...
}

Функцию нельзя протестировать без настоящей базы, а в запросе ещё и подставлено значение строкой. С чего начать улучшения?

  • Передавать базу явно и готовить запросы
  • Заменить global на $GLOBALS['db']
  • Сделать $db статическим свойством класса
  • Оставить как есть, раз $orderId типизирован

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела