Pretty PHP Info - пакет от Joseph Szobody из Signature Tech Studio, который заменяет стандартный вывод phpinfo() на современную, удобную страницу с интерфейсом, поддерживающим поиск. Помимо визуального представления, он добавляет API для программного запроса конфигурации PHP в коде.
Простое использование
Чтобы вывести конфигурацию PHP в красивом интерфейсе, достаточно вызвать функцию:
prettyphpinfo();Эта функция вызывает аналог phpinfo(), но результат отображается в современной тёмной теме с возможностью быстрого поиска значений. При необходимости можно фильтровать разделы, передав те же константы INFO_*, что и в стандартной функции:
// Показать только модули
prettyphpinfo(INFO_MODULES);
// Показать общие сведения + модули
prettyphpinfo(INFO_GENERAL | INFO_MODULES);Том же стиле, как и стандартная phpinfo(), комбинации констант позволяют контролировать, какие группы информации выводятся.
Программный доступ к конфигурации
Пакет предоставляет класс Info, с помощью которого можно анализировать вывод phpinfo() в коде и получать отдельные значения конфигурации:
use STS\Phpinfo\Info;
$info = Info::capture();
$info->version(); // Версия PHP
$info->hasModule('mysqli'); // true/false
$info->config('post_max_size'); // Значение директивы
$info->config('post_max_size', 'master'); // Значение по умолчанию из php.ini
$info->os(); // Имя ОС
$info->hostname(); // Имя хостаЗдесь capture() анализирует весь вывод phpinfo() и создаёт объект с методами, которые позволяют:
Получить версию PHP.
Проверить, загружен ли модуль.
Узнать текущее и мастер‑значение директивы.
Получить системную информацию.
Почему это полезно
Стандартная функция phpinfo() выводит сырые HTML‑таблицы или текст, которые не удобны для автоматической обработки или фильтрации. API пакета позволяет обойти эти ограничения и работать с данными конфигурации структурировано и программно.
Итерация по конфигурации
Возвращаемая структура содержит модули, группы и конфигурации в виде коллекций. Например, можно обойти все модули и вывести их настройки:
foreach ($info->modules() as $module) {
echo '<h2>' . $module->name() . '</h2>';
foreach ($module->configs() as $config) {
echo $config->name() . ': ' . $config->value();
if ($config->hasMasterValue()) {
echo ' (master: ' . $config->masterValue() . ')';
}
}
}Структура данных повторяет ту, что генерирует phpinfo():
Основной объект содержит модули.
Модули содержат группы.
Группы содержат настройки.
Загрузка старых да
нных
Если у вас есть ранее сохранённый вывод phpinfo() (HTML или текст), его тоже можно загрузить:
$info = Info::fromHtml($savedHtmlOutput);
$info = Info::fromText($savedTextOutput);Метод detect() автоматически определит формат:
$info = Info::detect($savedOutput);Эта возможность полезна для анализа данных PHP конфигурации на удалённых системах или в исторических отчётах.
Установка
Пакет требует PHP 8.3+ и расширение ext‑dom. Установить его можно через Composer:
composer require stechstudio/phpinfoПросмотр конфигурации осуществляется аналогично стандартному выводу.