PHP 8.5: CLI: `php --ini=diff` отображает нестандартные INI директивы

Отладка конфигурации PHP стала проще: в PHP 8.5 появилась команда `php --ini=diff`. Она одним вызовом показывает все изменённые INI-настройки, избавляя от ручного сравнения конфигов или поиска в `phpinfo()`.

Исполняемый файл PHP CLI в PHP 8.5 поддерживает новый флаг командной строки php --ini=diff, позволяющий отобразить список INI директив, отличающихся от стандартных значений по умолчанию.

Теперь вы можете быстро увидеть все изменённые настройки INI-файлов. Это удобно, когда нужно составить отчёт об ошибке и понять, какие настройки могли вызвать проблему.

Кстати, старая добрая команда php --ini всё ещё работает и показывает информацию о загруженных INI-файлах

Чтобы увидеть описание новой возможности, достаточно вызвать php --help:

php --help
 Usage: php [options] [-f] <file> [--] [args...]
php [options] -r <code> [--] [args...]

...

--ini Show configuration file names
+ --ini=diff Show INI entries that differ from the built-in default

...

Новый флаг CLI php --ini=diff

Команда php в версиях PHP 8.5 и последующих с указанием параметра --ini=diff выводит INI директивы, чьи текущие значения не соответствуют стандартным.

php --ini=diff
Non-default INI settings:
html_errors: "1" -> "0"
implicit_flush: "0" -> "1"
max_execution_time: "30" -> "0"

Обратите внимание, что нет возможности получить эти записи в формате, удобном для обработки компьютером, так как они в основном предназначены для устранения неполадок.

Использование --ini=diff с другими параметрами конфигурации

PHP предлагает несколько опций CLI для точной настройки INI директив PHP.

Новая опция - -ini=diff хорошо работает со всеми вышеперечисленными опциями.

Например, если INI-директива date.timezone передаётся с помощью опции CLI -d, это изменение отразится в выводе --ini=diff:

php -d date.timezone="Europe/Moscow" --ini=diff
Non-default INI settings:
date.timezone: "UTC" -> "Europe/Moscow"
html_errors: "1" -> "0"
implicit_flush: "0" -> "1"
max_execution_time: "30" -> "0"

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

php --ini=diff — новая опция CLI, добавленная в PHP 8.5, не вызывающая проблем с обратной совместимостью.

В предыдущих версиях PHP вызов команды php --ini=diff проходит без ошибок, но результат не отличается от php --ini.

Комментарии


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

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

PHP 8.5: Intl: новый класс IntlListFormatter