Сегодня я покажу вам, как быстро разрулить хаос в проекте с кастомным фреймворком, где ... — 19 июня 2026 г. в 04:27:23.470
Сегодня я покажу вам, как быстро разрулить хаос в проекте с кастомным фреймворком, где нет нормального логирования. Ситуация: клиент дал старый проект, ошибок — куча, но логов нет вообще. В коде try-catch, а в catch — пусто. Что делать? Вот мой быстрый чеклист, который спасал не раз: 1. Глобальный обработчик ошибок и исключений set_error_handler(function ($errno, $errstr, $errfile, $errline) { error_log("[PHP ERROR] $errstr in $errfile:$errline"); return false; }); set_exception_handler(function (Throwable $e) { error_log("[UNCAUGHT EXCEPTION] " . $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine()); }); Добавил в index.php, и уже вижу, что именно валится. 2. Простой логгер на каждый чих Создал файл logger.php: function log_debug($msg) { file_put_contents(__DIR__.'/debug.log', date('[Y-m-d H:i:s] ') . $msg . PHP_EOL, FILE_APPEND); } В нужных местах пишу log_debug('что-то случилось');. Дёшево и сердито, зато работает. 3. Прокинул заголовки и запросы В самых первых строках запроса: log_debug("REQUEST: " . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI']); log_debug("HEADERS: " . json_encode(getallheaders())); log_debug("POST: " . json_encode($_POST)); Теперь видно, с чем именно клиент ломает мой старый код. Не всегда есть время подтягивать Monolog и делать всё красиво. Иногда нужно быстро найти, где горит — и потушить. А уже потом наводить красоту. 👉 @php_lib

