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

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

Статьи

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: CLI: php --ini=diff отображает нестандартные INI директивы

Отладка конфигурации PHP стала проще: в PHP 8.5 появилась команда `php --ini=diff`. Она одним вызовом показывает все изменённые INI-настройки, избавляя от ручного сравнения конфигов или поиска в `phpinfo()`.
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 задать невозможно. Это упрощает контроль ресурсов в продакшене и предотвращает неконтролируемый рост потребления памяти.
BackendPHP

PHP 8.5: Оператор pipe (|>) — примеры, ограничения, руководство

В PHP 8.5 добавлен новый оператор, оператор pipe (|>), позволяющий связывать несколько вызываемых объектов слева направо, принимая возвращаемое значение левого вызываемого объекта и передавая его вправо.
DevOpsPHP

Руководство по установке и обновлению PHP 8.5 для Debian и Ubuntu

Полное руководство по установке и обновлению PHP 8.5 в Ubuntu и Debian: подключение репозитория Ondřej, установка PHP-FPM и расширений, миграция конфигурации, удаление старых версий и работа нескольких версий PHP одновременно.
FrontendCSS

CSS if(): новая функция условной логики доступна в Chrome 137+

CSS с каждым днём превращается в настоящий «язык программирования». С появлением новых возможностей, таких как CSS переменные, функция calc(), псевдоклассы :has() и :is(), а также универсальные @media запросы, CSS упрощает создание сложных стилей и макетов.