PHP 8.5: Новая константа `PHP_BUILD_PROVIDER`
В 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Практическое применение PHP_BUILD_PROVIDER
Информация о поставщике сборки PHP может быть полезна в следующих случаях:
- Контроль версий и окружений — при работе с несколькими версиями PHP или окружениями (dev/staging/prod) для проверки корректности развёртывания
- Отладка проблем — при возникновении ошибок, связанных с конкретной сборкой PHP, для определения источника проблемы
- Тестирование — при написании тестов, которые зависят от особенностей сборки PHP
- Документация — для создания точной документации о среде разработки и развёртывания
- Совместимость — при проверке совместимости с определёнными сборками PHP (например, Debian vs Ubuntu)
- Мониторинг — для автоматического сбора информации о среде выполнения приложений
- Логирование — включение информации о сборке в логи для упрощения отладки в продакшене
- Безопасность — при проверке целостности сборки и соответствия ожидаемым параметрам
- Автоматизация — для создания скриптов, которые выполняют разные действия в зависимости от поставщика сборки
Пример логирования информации о версии и поставщике 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 и более поздние версии могут получать эту информацию напрямую, проверяя, объявлена ли константа сборки, и разрешая константу.