Старый PHP-сайт часто выглядит страшнее, чем есть на самом деле. В нём может не быть тестов, документации и свежего фреймворка, но он принимает заявки, показывает каталог и кормит бизнес. Полное переписывание в такой ситуации не всегда первый правильный шаг.

Начать с критичных сценариев

Сначала стоит перечислить, что нельзя ломать: форма заявки, оплата, корзина, личный кабинет, админка, выгрузки, письма. Потом проверить именно эти маршруты. Красивый рефакторинг вторичен, если письма с заявками иногда не доходят.

Не трогать всё сразу

Опасность старого проекта в связях, которые не видны с первого взгляда. Один include может использоваться в десяти местах, а изменение SQL-запроса внезапно ломает отчёт. Поэтому лучше делать маленькие правки: воспроизвести ошибку, исправить, проверить соседние сценарии, записать результат.

Добавить видимость

Даже простое логирование уже помогает. Ошибки отправки почты, исключения SQL, пустые обязательные поля, неожиданные ответы API — всё это должно быть видно. Когда проблема повторится, не придётся гадать по словам «сайт иногда не работает».

Когда переписывание всё-таки нужно

Если каждая правка ломает соседние части, код невозможно запустить локально, а бизнес хочет активно развивать функциональность, новый стек может быть оправдан. Но решение лучше принимать после диагностики, а не из-за возраста PHP-файлов.

Практичный формат работы

Для старых сайтов хорошо подходит список коротких задач: починить форму, убрать дубль, ускорить запрос, настроить SMTP, закрыть ошибку в админке. Так проект постепенно становится понятнее, а владелец не платит сразу за большой рискованный переезд.