Спершу чесне питання
Скільки система коштує зараз? Не в грошах за хостинг, а в годинах на кожну зміну, у відмовах розробників з нею працювати, у функціях, які бізнес хоче, але «в цій системі так не зробиш». Якщо відповідь «майже нічого, вона просто працює», можливо, чіпати її не треба. Ми так і скажемо, бо аудит, після якого рекомендують нічого не робити, теж корисний аудит.
Якщо ж відповідь інша, є три варіанти.
Варіант перший: законсервувати
Підняти версію PHP до підтримуваної, замінити мертві залежності, закрити відомі вразливості, поставити бекапи й моніторинг, задокументувати деплой. Система лишається старою за архітектурою, але перестає бути ризиком. Це найдешевший варіант, і для систем, у яких не планується активний розвиток, він правильний.
Варіант другий: оновити на місці
Те саме плюс поступове наведення ладу всередині: тести навколо критичних сценаріїв, розбір найзаплутаніших модулів, впорядкування бази. Фреймворк не міняється, але код стає таким, у який може увійти новий розробник. Підходить, коли система житиме ще роки і в неї треба вносити зміни, але бюджету на міграцію немає.
Варіант третій: поступова міграція
Нова система на Laravel або Symfony піднімається поруч зі старою й забирає функції по одній. Стара система з часом порожніє і вимикається. Бізнес не зупиняється ні на день, «великого релізу» немає. Це найдорожчий варіант, і він виправданий, коли система є ядром бізнесу і має розвиватись швидко.
Чому не з нуля
Переписування з нуля означає місяці без нових функцій, а наприкінці систему з новими помилками замість старих, які всі вже знали. Знання про те, як бізнес працює насправді, живе в старому коді: у кожній дивній умові, яку хтось додав після скарги клієнта. Переписуючи з нуля, ці знання втрачають. Мігруючи модуль за модулем, їх переносять.
Як обрати
Аудит. Кілька днів, документ із трьома варіантами, кожен із ціною й терміном. Документ ваш незалежно від того, кого ви оберете для роботи. Часто відповідь виявляється комбінацією: перший варіант зараз, третій через рік, коли буде бюджет і буде зрозуміло, які модулі справді треба переносити.