Заметки разработчика

Заметки о Frontend, Backend и немного DevOps. В основном о PHP, Laravel, JavaScript, CSS, тестировании кода и настройке серверов.

Статьи

JavaScriptNodeJS

Асинхронные циклы в JavaScript: как избежать ловушек

Запускаете три независимых API-запроса в цикле, а они выполняются друг за другом, заставляя пользователя ждать втрое дольше. Или получаете массив [Promise, Promise, Promise] вместо ожидаемых данных. Всё дело в том, как вы используете await, map и forEach.
JavaScriptReact

React изменился, хуки тоже должны измениться

В 2026 году React продолжает эволюционировать. Узнайте, как перейти от злоупотребления useEffect к современным паттернам хуков, которые делают код чище, уменьшают ошибки и готовят ваше приложение к будущему.
GulpJavaScriptNodeJS

Файловые потоки: Vinyl и vinyl-fs в основе Gulp

Сила современного Gulp — не в сборке фронтенда, а в автоматизации через потоки файлов. В основе — объект Vinyl и движок vinyl-fs. Эта статья — разбор этих технологий, сценарии применения и замена устаревшего passthrough на актуальные паттерны.
BackendPHP

PSR-20 Clock: Тестируемое время в PHP

Представьте: вы пушите код, и в CI падает unit-тест из-за расхождения в одну секунду. Знакомая проблема? В основе лежит зависимость от системного времени. В этой статье разберём, как стандарт PSR-20 Clock решает эту проблему, делая ваши PHP-тесты стабильными и предсказуемыми.
BackendPHP

Частичное применение функций появится в PHP 8.6

В PHP 8.6 представлено частичное применение функций (PFA) — долгожданное решение для замены однотипных стрелочных функций в array_map и array_filter. Этот инструмент, выходящий за рамки синтаксического сахара, способствует созданию более чистого и понятного кода. В статье рассматривается принцип работы PFA, приводятся практические примеры и проводится сравнение с классическими подходами.
BackendPHP

PHP 8.5: Вывод из обработчиков буфера вывода объявлен устаревшим

Начиная с PHP 8.5 вывод из обработчиков буфера вывода объявлен устаревшим. При обнаружении вывода из обработчика PHP сгенерирует предупреждение E_DEPRECATED, хотя сам вывод по-прежнему будет подавлен. В PHP 9.0 это приведёт к фатальной ошибке (Fatal Error), что прервёт выполнение скрипта.
BackendPHP

PHP 8.5: Функции `curl_close` и `curl_share_close` устарели

Если ваши логи в PHP 8.5 заполонили предупреждения об устаревании curl_close() — не игнорируйте их. Эти функции действительно стали бесполезными, и их вызов теперь лишь шум. В PHP 8.0 cURL-дескрипторы превратились в объекты, а в PHP 8.5 от пустых функций окончательно решили избавиться. Разбираемся, что это значит для вашего кода.
BackendPHP

PHP 8.5: Отказ от использования нестандартных имён приведения типов

В PHP 8.5 типы (boolean), (double), (integer) и (binary) объявлены устаревшими: при использовании этих типов теперь выводятся предупреждения E_DEPRECATED. Эти альтернативные имена использовались параллельно с каноническими (bool), (float), (int) и (string), но в PHP 9.0 они будут удалены. Рассмотрим, почему принято такое решение, как это затронет ваш код и как подготовиться к переходу.
BackendPHP

PHP 8.5: Новая константа PHP_BUILD_DATE

В PHP 8.5 появилась константа PHP_BUILD_DATE, которая хранит дату и время сборки PHP-бинарного файла. Ранее эту информацию можно было получить только через phpinfo(), что было неудобно из-за необходимости парсить вывод функции. Теперь данные доступны напрямую в удобном формате.
BackendPHP

PHP 8.5: Новая константа PHP_BUILD_PROVIDER

В PHP 8.5 появилась новая глобальная константа PHP_BUILD_PROVIDER, отображающая информацию о поставщике сборки PHP. Она получает значение из переменной окружения, заданной при компиляции, что позволяет разработчикам получать контекстные данные о сборке приложения. Ранее эта информация была доступна только через вывод phpinfo(), теперь её можно использовать непосредственно в коде.
BackendPHP

PHP 8.5: Новые функции `get_exception_handler` и `get_error_handler`

В PHP 8.5 появились две важные функции для работы с обработчиками ошибок и исключений — get_error_handler и get_exception_handler. Эти нововведения решают проблему отсутствия прямого доступа к информации о текущих обработчиках, ранее требовавшая использования обходных решений.
BackendPHP

PHP 8.5: Поддержка трассировки стека для фатальных ошибок PHP

В PHP 8.5 появилась функция трассировки стека для фатальных ошибок, упрощающая процесс отладки приложений. Теперь разработчики могут видеть полный путь выполнения кода до момента возникновения критической ошибки, что существенно ускоряет поиск и устранение проблем. В статье рассматривается новая INI-директива fatal_error_backtraces, ограничения и взаимодействие с существующими инструментами обработки ошибок.
BackendPHP

PHP 8.5: новая функция locale_is_right_to_left и Locale::isRightToLeft

В PHP 8.5 появилось обновление для работы с многоязычными приложениями: функция locale_is_right_to_left и метод Locale::isRightToLeft, позволяющие разработчикам автоматически определять языки с написанием справа налево, включая арабский и иврит. Эти инструменты значительно упрощают локализацию приложений и обеспечивают корректное отображение текста на языках с RTL написанием письма.
BackendPHP

PHP 8.5: новая Curl-функция curl_multi_get_handles — как она работает

В PHP 8.5 расширение cURL получило улучшение, которое делает работу с многопоточными запросами проще. Функция curl_multi_get_handles позволяет напрямую получить список всех добавленных CurlHandle, чего раньше катастрофически не хватало.
BackendPHP

PHP 8.5: Новая INI-директива max_memory_limit

В PHP 8.5 разработчики получили новый инструмент управления ограничениями памяти — INI-директива max_memory_limit. Она позволяет задать верхний предел, выше которого значение memory_limit задать невозможно. Это упрощает контроль ресурсов в продакшене и предотвращает неконтролируемый рост потребления памяти.