Перейти к содержимому
Максиметер

КЕЙС:

КЕЙС: 100+ сайтов на PHP 8.5.12 за трое суток Коллеги, 21 октября 2026 мир получил «подарок» — критические уязвимости в PHP. Хостинги начали резать старые версии. Государственные сайты отключаться, а девелоперы седеть. Дедлайн? 72 часа. У нас на поддержке — больше 100 сайтов. Расклад был весёлый: 32 проекта на PHP 5 (!), около 40 на PHP 7, и только остальные на PHP 8. Итого — трое суток и дергающийся глаз. Знаете, что оказалось главным врагом? Не строгая типизация. Не проклятые null в PHP 8. Не match вместо switch. А бич лютого легаси — семейство mysql_*. Удалённое ещё в PHP 7.0, оно продолжало жить в десятках проектов: mysqlconnect(), mysqlquery(), mysqlfetchassoc()... На каждой строчке — Fatal error: Call to undefined function. И таких строк — тысячи. Переписывать каждый сайт на PDO? За 72 часа? Ну-ну. Решение Написал слой совместимости — один файл mysql-tablet.php, который эмулирует весь старый API mysql_* поверх mysqli. Подключаешь в начале проекта — и легаси оживает без правок в коде. Что внутри: → mysql_connect() с поддержкой сокетов, портов и p:-префикса → mysqlquery(), mysqlfetchrow(), mysqlfetchassoc(), mysqlfetch_array() → mysqlnumrows(), mysqlaffectedrows(), mysqlinsertid() → mysqlrealescapestring(), mysqlsetcharset(), mysqlclose() → Тихий режим ошибок — как привык старый код: false вместо исключений Один require — и 32 сайта на PHP 5 поднялись без единой правки в бизнес-логике. ⚠️ Важно Это костыль для миграции, а не вечное решение. Он не спасает от SQL-инъекций, которые уже были в коде. Но он даёт время спокойно переписать проект на PDO, не роняя прод в момент катастрофы. Итог: 100+ сайтов на PHP 8.5.12 за трое суток. Ни одного даунтайма для клиентов. Два литра кофе и пара бессонных ночей — в подарок. П.С. Файл в приложении. Вот так. Идем кодить дальше! 🚀

6 просмотров

Канал в каталоге Максиметера

127 подписчиков · IT и технологии

Другие публикации канала

Популярные публикации канала

Читать дальше

Два раза в неделю свежие посты этого канала — на почту и в личную ленту. Без повторного поиска канала вручную.