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

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

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

Если переменная окружения не определена во время сборки, то константа не объявляется.

Эта информация содержится в выводе phpinfo() в разделе Build provider, но до PHP 8.5 она не отображалась в виде константы PHP.

Например, в консольной версии phpinfo() или при вызове php -i :

phpinfo()
PHP Version => 8.5.1

System => Linux Base 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
Build Date => Dec 18 2025 23:39:41
Build System => Linux
Build Provider => Debian
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/8.5/cli
...

В браузере будет отображена типичная для phpinfo() таблица:

Вывод phpinfo() с информацией о Build provider: Debian
Вывод phpinfo() с информацией о Build provider: Debian

Практическое применение PHP_BUILD_PROVIDER

Информация о поставщике сборки PHP может быть полезна в следующих случаях:

Пример логирования информации о версии и поставщике PHP:

// Пример: логирование информации о сборке
error_log(
"Application running on PHP " . PHP_VERSION .
" built by: " . (defined('PHP_BUILD_PROVIDER') ? PHP_BUILD_PROVIDER : 'unknown')
);

Объявление значения PHP_BUILD_PROVIDER

Для объявления константы PHP_BUILD_PROVIDER PHP задайте переменную среды с таким же именем перед вызовом скрипта ./configure. Например:

 ./buildconf
+export PHP_BUILD_PROVIDER="Example Value"
./configure ...
make
make install
echo PHP_BUILD_PROVIDER; // Выведет "Example Value"

Влияние на обратную совместимость

PHP-константа PHP_BUILD_PROVIDER — добавлена в PHP 8.5.

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

Комментарии


Дополнительные материалы

Предыдущая Статья

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