Skip to content

Адаптер Yii 2

Адаптер Yii 2 связывает ADP Kernel и API с Yii 2.0.50+ через механизм bootstrap.

Установка

bash
composer require app-dev-panel/adapter-yii2

Пакет автоматически регистрируется через extra.bootstrap в composer.json. Класс BootstrapAppDevPanel\Adapter\Yii2\BootstrapYii 2 bootstrap component that registers the ADP debug module.final Adapter/Yii2 · class · implements BootstrapInterface регистрирует модуль debug-panel автоматически при включенном YII_DEBUG.

Конфигурация

Настройте модуль в конфигурации приложения:

php
'modules' => [
    'debug-panel' => [
        'class' => \AppDevPanel\Adapter\Yii2\Module::class,
        'storagePath' => '@runtime/debug',
        'historySize' => 50,
        'collectors' => [
            'request' => true,
            'exception' => true,
            'log' => true,
            'event' => true,
            'db' => true,
            'mailer' => true,
            'assets' => true,
            'redis' => true,
            'elasticsearch' => true,
            'template' => true,
            'code_coverage' => false, // opt-in, требует pcov или xdebug
            // ... все коллекторы включены по умолчанию
        ],
        'ignoredRequests' => ['/debug/api/**', '/inspect/api/**'],
        'ignoredCommands' => ['help', 'list', 'cache/*', 'asset/*'],
        'allowedIps' => ['127.0.0.1', '::1'],
    ],
],

Коллекторы

Поддерживает все коллекторы Kernel, а также специфичный для Yii 2 сбор данных:

КоллекторМеханизмДанные
DatabaseDbProfilingTarget (логгер Yii)SQL-запросы, время, кол-во строк
LogDebugLogTargetAppDevPanel\Adapter\Yii2\Collector\DebugLogTargetReal-time log target that feeds Yii 2 log messages to ADP's LogCollector.final Adapter/Yii2 · class · extends Target (real-time Yii log target)Сообщения логов с маппингом PSR-3 уровней
MailerBaseMailer::EVENT_AFTER_SENDFrom, to, cc, bcc, subject, body
Asset BundlesView::EVENT_END_PAGEБандлы: класс, пути, CSS/JS, зависимости
TranslatorI18NProxyAppDevPanel\Adapter\Yii2\Proxy\I18NProxyDecorates Yii 2's I18N component to feed translation lookups to TranslatorCollector.final Adapter/Yii2 · class · extends I18N заменяет Yii::$app->i18nПоиск переводов, пропущенные переводы
TemplateView::EVENT_BEFORE_RENDER + EVENT_AFTER_RENDERВремя рендеринга, вывод, параметры (поддержка вложенности)
RedisПрямые вызовы коллектораRedis-команды, время, ошибки
ElasticsearchПрямые вызовы коллектораES-запросы, время, количество совпадений
Code CoverageРасширение pcov / xdebugПокрытие строк по файлам (opt-in)
AuthorizationUser::EVENT_AFTER_LOGIN/LOGOUTСобытия аутентификации, идентификация пользователя
RouterUrlRuleProxyAppDevPanel\Adapter\Yii2\Proxy\UrlRuleProxyWraps a Yii 2 URL rule to intercept successful route matching.final Adapter/Yii2 · class · implements UrlRuleInterface оборачивает все URL-правилаДанные маршрутизации, время

Коллектор Template

TemplateCollector подключается к View::EVENT_BEFORE_RENDER и EVENT_AFTER_RENDER для захвата каждого рендеринга view с путём к файлу, выводом, параметрами и временем. Корректно обрабатывает вложенный рендеринг (например, layout → partial → widget) с помощью стека таймеров по файлам. Автоматически обнаруживает дублирующиеся рендеры.

Code Coverage

Code coverage — opt-in ('code_coverage' => false по умолчанию). Требует расширение pcov или xdebug. Без них коллектор возвращает driver: null. Подробности на странице Коллекторы — Code Coverage.

Интеграция с переводчиком

Адаптер заменяет компонент приложения i18n на I18NProxyAppDevPanel\Adapter\Yii2\Proxy\I18NProxyDecorates Yii 2's I18N component to feed translation lookups to TranslatorCollector.final Adapter/Yii2 · class · extends I18N — расширенный yii\i18n\I18N, который переопределяет метод translate(). Все вызовы Yii::t() перехватываются и записываются в TranslatorCollectorAppDevPanel\Kernel\Collector\TranslatorCollectorCaptures translation lookups during request execution.final Kernel · class · implements SummaryCollectorInterface автоматически. Подробности на странице Переводчик.

Инспектор базы данных

Yii2DbSchemaProvider предоставляет инспекцию схемы БД через yii\db\Schema. Без настроенного компонента базы данных используется NullSchemaProviderAppDevPanel\Adapter\Yii2\Inspector\NullSchemaProviderNo-op schema provider for when no database is configured. Returns empty results instead of causing a 500 error.final Adapter/Yii2 · class · implements SchemaProviderInterface.

Выпущено под лицензией MIT.