Pretty PHP Info: Современная альтернатива phpinfo()

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

Просмотр конфигурации осуществляется аналогично стандартному выводу.

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Laravel-Zipstream: потоковая генерация ZIP-архивов без нагрузки на сервер

Обзор пакета laravel-zipstream для потоковой генерации ZIP-архивов в Laravel. Разбираем, как работает стриминг, его преимущества и когда его стоит использовать.

Как импортировать библиотеку JavaScript на фронтенде без сборщика

Как подключать JavaScript-библиотеки напрямую в браузере без использования сборщиков. Разбираем форматы модулей, importmap и альтернативные подходы.

Прямая итерация Fluent-объектов в Laravel

Обзор обновления Laravel, в котором Fluent-объекты получили поддержку прямой итерации через Iterable-контракт. Объясняется, почему это улучшение упрощает код и делает работу с данными более естественной.