Заметки разработчика
472 subscribers
668 photos
4 videos
1.16K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
🧠 PHP 8.5: новая директива max_memory_limit

В PHP 8.5 появилась новая INI-директива max_memory_limit, которая задаёт верхний предел для memory_limit. Теперь администратор может запретить скрипту увеличивать лимит памяти выше установленного значения — даже через ini_set().

Зачем это нужно
— защита от неконтролируемого роста потребления памяти;
— удобный потолок для продакшена, Docker и shared-hosting;
— предсказуемое поведение конфигурации.

Если memory_limit пытаются поставить выше max_memory_limit или отключить (-1), PHP выдаёт предупреждение и оставляет максимально разрешённое значение.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 PHP 8.5 получает новую Curl-функцию — curl_multi_get_handles

В свежем релизе PHP 8.5 расширение Curl обзавелось полезным обновлением: теперь можно напрямую получить список всех CurlHandle, добавленных в CurlMultiHandle. Раньше для этого приходилось вручную вести массивы или использовать WeakMap.

Функция упрощает работу с множественными curl-запросами и делает мульти-обработку предсказуемее и удобнее.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #cURL
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 PHP 8.5: Intl: новый класс IntlListFormatter

Расширение Intl в PHP 8.5 добавляет новый класс IntlListFormatter. Он обеспечивает форматирование списков с учётом локализации в удобные для чтения списки "и"-списки, "или"-списки или единицы.

Новый класс IntlListFormatter следует тем же шаблонам, что и другие классы из расширения Intl; он создаётся с помощью валидной строки локали и использует данные ICU для фактического форматирования.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #Intl
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP 8.5: CLI: php --ini=diff отображает нестандартные INI директивы

В PHP 8.5 появилась полезная команда для отладки конфигурации — php --ini=diff. Она моментально показывает все INI-настройки, которые отличаются от стандартных значений по умолчанию.

🛠 Как это работает:

php --ini=diff


На выходе — список параметров, которые вы или система изменили:

Non-default INI settings:
html_errors: "1" -> "0"
max_execution_time: "30" -> "0"


🚀 Зачем это нужно:

Больше не нужно вручную сравнивать php.ini или искать изменения в phpinfo()
Идеально для отчётов об ошибках — сразу видно, какие настройки могли вызвать проблему
Работает в связке с другими CLI-опциями (-d, -c, -n)

🔙 Обратная совместимость:

В старых версиях PHP команда не сломается — просто вернёт результат как php --ini.

Отличный инструмент для всех, кто работает с настройкой PHP-серверов и отладкой окружения.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
PHP 8.5: новая функция locale_is_right_to_left и метод Locale::isRightToLeft

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

Эти инструменты значительно упрощают локализацию приложений и обеспечивают корректное отображение текста на языках с RTL написанием.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #Intl #Locale
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🚀 PHP 8.5: Поддержка трассировки стека для фатальных ошибок PHP

Раньше при фатальных ошибках мы видели только строку сбоя, без понимания полного пути выполнения кода. Теперь PHP показывает полный stack trace, что значительно ускоряет отладку.

📌 Что нового:

Включено по умолчанию (можно отключить через fatal_error_backtraces = Off)
Работает с существующими директивами (display_errors, #[\SensitiveParameter])
Без проблем обратной совместимости

Пример новой трассировки:

Stack trace:
#0 file.php(...): str_repeat('A', 5242880)
#1 file.php(...): my_heavy_function()
#2 {main}


Это особенно удобно при работе с legacy-кодом и сложными цепочками вызовов в современных фреймворках.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #Error
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP 8.5: Новые функции get_exception_handler и get_error_handler

PHP 8.5 добавил две полезные функции, которых не хватало годами: get_error_handler() и get_exception_handler(). Раньше приходилось временно ставить новый обработчик, чтобы узнать текущий. Теперь легко получить текущий обработчик ошибок или исключений — без хаков и костылей.

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #Error
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚙️ PHP 8.5: Новая константа PHP_BUILD_PROVIDER

Раньше, чтобы узнать, кто собрал ваш PHP (например, Debian или Ubuntu), нужно было вызывать phpinfo(). В PHP 8.5 это можно сделать прямо из кода.

Новая глобальная константа PHP_BUILD_PROVIDER получает значение, заданное при сборке PHP. Это открывает возможности для:
Контроля версий и окружений
Точечной отладки проблем
Логирования информации о среде

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
⚙️ PHP 8.5: Новая константа PHP_BUILD_DATE

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

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85
Please open Telegram to view this post
VIEW IN TELEGRAM
‼️ PHP 8.5: Отказ от устаревших приведений типов (boolean, double, integer, binary)

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

Пример проблемного кода:
<?php

function test(integer $value): double {}
// Warning: "double" will be interpreted as a class name...


🛠 С PHP 8.5 нужно обновить код:
(integer)(int)
(double)(float)
(boolean)(bool)
(binary)(string)

Иначе будут предупреждения E_DEPRECATED, а в PHP 9.0 — ошибки!

🖥 Читать статью

📱 @dev_notes_ru

#PHP #PHP85 #Deprecated #Deprecation
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1