Skip to content

Матрица возможностей

ADP поддерживает несколько PHP-фреймворков через адаптеры. Каждый адаптер подключает хуки фреймворка к общим коллекторам Kernel. На этой странице описано, что доступно в каждом адаптере.

Поддержка коллекторов по адаптерам

Все коллекторы находятся в Kernel и не зависят от фреймворка. Адаптеры регистрируют и подключают их через хуки событий, прокси или декораторы.

Универсальные коллекторы

Эти коллекторы зарегистрированы во всех пяти полных адаптерах:

КоллекторПанельОписание
TimelineCollectorAppDevPanel\Kernel\Collector\TimelineCollectorCollects Timeline data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceTimelineСобытия временной шкалы производительности
LogCollectorAppDevPanel\Kernel\Collector\LogCollectorCollects Log data during application lifecycle.Kernel · class · implements SummaryCollectorInterfaceLogsPSR-3 сообщения логов
EventCollectorAppDevPanel\Kernel\Collector\EventCollectorCollects Event data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceEventsPSR-14 отправленные события
ExceptionCollectorAppDevPanel\Kernel\Collector\ExceptionCollectorCollects Exception data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceExceptionsНеобработанные исключения со стек-трейсами
DeprecationCollectorAppDevPanel\Kernel\Collector\DeprecationCollectorCollects Deprecation data during application lifecycle.final Kernel · class · implements SummaryCollectorInterface(в Logs)PHP deprecation-предупреждения
ServiceCollectorAppDevPanel\Kernel\Collector\ServiceCollectorCollects Service data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceServicesРазрешения сервисов DI-контейнера
HttpClientCollectorAppDevPanel\Kernel\Collector\HttpClientCollectorCollects Http Client data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceHTTP ClientPSR-18 исходящие HTTP-запросы
VarDumperCollectorAppDevPanel\Kernel\Collector\VarDumperCollectorCollects Var Dumper data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceVar DumperВызовы dump() / dd()
EnvironmentCollectorAppDevPanel\Kernel\Collector\EnvironmentCollectorCollects runtime environment information: PHP version, extensions, SAPI, OS, working directory, server parameters, and environment variables.final Kernel · class · implements SummaryCollectorInterfaceEnvironmentИнформация о PHP и ОС
FilesystemStreamCollectorAppDevPanel\Kernel\Collector\Stream\FilesystemStreamCollectorCollects Filesystem Stream data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceFilesystemОперации файловых потоков
HttpStreamCollectorAppDevPanel\Kernel\Collector\Stream\HttpStreamCollectorCollects Http Stream data during application lifecycle.final Kernel · class · implements SummaryCollectorInterface(скрыт)Сырые HTTP-потоки (подвид HTTP Client)
RequestCollectorAppDevPanel\Kernel\Collector\Web\RequestCollectorCollects Request data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceRequestВходящие HTTP запрос/ответ (web-записи)
CommandCollectorAppDevPanel\Kernel\Collector\Console\CommandCollectorCollects Command data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceRequestДетали консольной команды (console-записи)
WebAppInfoCollectorAppDevPanel\Kernel\Collector\Web\WebAppInfoCollectorCollects Web App Info data during application lifecycle.final Kernel · class · implements SummaryCollectorInterface(мета)Сводка web-приложения для списка записей
ConsoleAppInfoCollectorAppDevPanel\Kernel\Collector\Console\ConsoleAppInfoCollectorCollects Console App Info data during application lifecycle.final Kernel · class · implements SummaryCollectorInterface(мета)Сводка консольного приложения для списка записей
RouterCollectorAppDevPanel\Kernel\Collector\RouterCollectorCaptures HTTP routing data: matched route, match timing, route tree.final Kernel · class · implements SummaryCollectorInterfaceRouterДанные маршрутизации HTTP
ValidatorCollectorAppDevPanel\Kernel\Collector\ValidatorCollectorCaptures validation operations with results.final Kernel · class · implements SummaryCollectorInterfaceValidatorОперации валидации и результаты
TranslatorCollectorAppDevPanel\Kernel\Collector\TranslatorCollectorCaptures translation lookups during request execution.final Kernel · class · implements SummaryCollectorInterfaceTranslatorПоиск переводов, пропущенные переводы
AuthorizationCollectorAppDevPanel\Kernel\Collector\AuthorizationCollectorCaptures authentication and authorization data.final Kernel · class · implements SummaryCollectorInterfaceSecurityДанные аутентификации и авторизации
OpenTelemetryCollectorAppDevPanel\Kernel\Collector\OpenTelemetryCollectorCollects Open Telemetry data during application lifecycle.final Kernel · class · implements SummaryCollectorInterfaceOpenTelemetryOpenTelemetry span-ы и трейсы

Матрица доступности коллекторов

КоллекторYii 3SymfonyLaravelYii2SpiralПанель
DatabaseDatabase
CacheCache
MailerMailer
QueueQueue
RedisRedis
ElasticsearchElasticsearch
ViewWebView
TemplatesTemplates
Code CoverageCoverage
Asset BundlesAsset Bundles
MiddlewareMiddleware
MessengerMessenger

Spiral — авто-подключение

Адаптер Spiral подключает каждый коллектор через Container/*ProxyInjector (см. Инжекторы контейнера) — коллекторы кеша, mailer, queue, переводчика и шаблонов наполняются автоматически, как только в приложении установлен соответствующий пакет spiral/*. Никаких ручных вызовов collect() не требуется.

Итого коллекторов по адаптерам

АдаптерУниверсальныеДополнительныеВсего
Yii 3201030
Symfony201030
Yii2201030
Laravel201030
Spiral20424

Механизмы проксирования / перехвата

Каждый адаптер использует разные стратегии для перехвата внутренних механизмов фреймворка и передачи данных в коллекторы:

ИнтерфейсYii 3SymfonyLaravelYii2Spiral
PSR-3 LoggerLoggerInterfaceProxyAppDevPanel\Kernel\Collector\LoggerInterfaceProxyDecorator proxy for Logger Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements LoggerInterfaceLoggerInterfaceProxyAppDevPanel\Kernel\Collector\LoggerInterfaceProxyDecorator proxy for Logger Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements LoggerInterfaceLoggerInterfaceProxyAppDevPanel\Kernel\Collector\LoggerInterfaceProxyDecorator proxy for Logger Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements LoggerInterfaceDebugLogTargetAppDevPanel\Adapter\Yii2\Collector\DebugLogTargetReal-time log target that feeds Yii 2 log messages to ADP's LogCollector.final Adapter/Yii2 · class · extends TargetLoggerProxyInjectorAppDevPanel\Adapter\Spiral\Container\LoggerProxyInjector
PSR-14 EventsEventDispatcherInterfaceProxyAppDevPanel\Kernel\Collector\EventDispatcherInterfaceProxyDecorator proxy for Event Dispatcher Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements EventDispatcherInterfaceSymfonyEventDispatcherProxyAppDevPanel\Adapter\Symfony\Proxy\SymfonyEventDispatcherProxyWraps Symfony's event dispatcher to intercept dispatched events.final Adapter/Symfony · class · implements EventDispatcherInterfaceLaravelEventDispatcherProxyAppDevPanel\Adapter\Laravel\Proxy\LaravelEventDispatcherProxyWraps Laravel's event dispatcher to intercept dispatched events.final Adapter/Laravel · class · implements DispatcherWildcard Event::on('*')EventDispatcherProxyInjectorAppDevPanel\Adapter\Spiral\Container\EventDispatcherProxyInjector
PSR-18 HTTP ClientHttpClientInterfaceProxyAppDevPanel\Kernel\Collector\HttpClientInterfaceProxyDecorator proxy for Http Client Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements ClientInterfaceHttpClientInterfaceProxyAppDevPanel\Kernel\Collector\HttpClientInterfaceProxyDecorator proxy for Http Client Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements ClientInterfaceHttpClientInterfaceProxyAppDevPanel\Kernel\Collector\HttpClientInterfaceProxyDecorator proxy for Http Client Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements ClientInterfaceHttpClientInterfaceProxyAppDevPanel\Kernel\Collector\HttpClientInterfaceProxyDecorator proxy for Http Client Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements ClientInterfaceHttpClientProxyInjectorAppDevPanel\Adapter\Spiral\Container\HttpClientProxyInjector
PSR-11 ContainerContainerInterfaceProxyAppDevPanel\Adapter\Yii3\Proxy\ContainerInterfaceProxyDecorator proxy for Container Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements ContainerInterfaceCompiler pass
VarDumperVarDumperHandlerInterfaceProxyAppDevPanel\Adapter\Yii3\Proxy\VarDumperHandlerInterfaceProxyDecorator proxy for Var Dumper Handler Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements HandlerInterfaceHandler hookHandler hookHandler hookHandler hook
DatabaseConnectionInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Db\ConnectionInterfaceProxyDecorator proxy for Connection Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements ConnectionInterfaceDBAL middlewareEvent listenerDbProfilingTargetAppDevPanel\Adapter\Yii2\Collector\DbProfilingTargetYii 2 profiling target that captures database query timing and feeds it to DbCollector.final Adapter/Yii2 · class · extends Target
MailerMailerInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Mailer\MailerInterfaceProxyDecorator proxy for Mailer Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements MailerInterfaceEvent listenerEvent listenerEvent hookMailerProxyInjectorAppDevPanel\Adapter\Spiral\Container\MailerProxyInjector
RouterUrlMatcherInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Router\UrlMatcherInterfaceProxyDecorator proxy for Url Matcher Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements UrlMatcherInterfaceRouterDataExtractorAppDevPanel\Adapter\Laravel\Collector\RouterDataExtractorExtracts route data from Laravel's router and feeds it to the Kernel RouterCollector.final Adapter/Laravel · classUrlRuleProxyAppDevPanel\Adapter\Yii2\Proxy\UrlRuleProxyWraps a Yii 2 URL rule to intercept successful route matching.final Adapter/Yii2 · class · implements UrlRuleInterfaceSpiralRouteCollectionAdapterAppDevPanel\Adapter\Spiral\Inspector\SpiralRouteCollectionAdapter + DebugRouteInterceptorAppDevPanel\Adapter\Spiral\Interceptor\DebugRouteInterceptor
ValidatorValidatorInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Validator\ValidatorInterfaceProxyDecorator proxy for Validator Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements ValidatorInterface
Queue (push)QueueProviderInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Queue\QueueProviderInterfaceProxyDecorator proxy for Queue Provider Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements QueueProviderInterfaceEvent listenerQueueProxyInjectorAppDevPanel\Adapter\Spiral\Container\QueueProxyInjector
Queue (consume)Event listenerDebugQueueInterceptorAppDevPanel\Adapter\Spiral\Interceptor\DebugQueueInterceptor
Консольные командыСобытия ядраСобытия ядраСобытия консолиDebugConsoleInterceptorAppDevPanel\Adapter\Spiral\Interceptor\DebugConsoleInterceptor
View/TemplatesTwig profiler extensionTemplateCollectorCompilerEngineAppDevPanel\Adapter\Laravel\Collector\TemplateCollectorCompilerEngineView::EVENT_AFTER_RENDERViewsProxyInjectorAppDevPanel\Adapter\Spiral\Container\ViewsProxyInjector
CacheDecorated CacheAdapterEvent listenerCacheProxyInjectorAppDevPanel\Adapter\Spiral\Container\CacheProxyInjector
MessengerMessenger middleware
Asset BundlesAssetLoaderInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Asset\AssetLoaderInterfaceProxyAssetMapperSubscriberAppDevPanel\Adapter\Symfony\EventSubscriber\AssetMapperSubscriberViteAssetListenerAppDevPanel\Adapter\Laravel\EventListener\ViteAssetListenerView::EVENT_END_PAGE
OpenTelemetrySpanProcessorInterfaceProxyAppDevPanel\Kernel\Collector\SpanProcessorInterfaceProxyDecorates an OpenTelemetry SpanProcessorInterface to capture span data into the OpenTelemetryCollector without altering telemetry pipeline behaviour.final Kernel · class · implements SpanProcessorInterfaceSpanProcessorInterfaceProxyAppDevPanel\Kernel\Collector\SpanProcessorInterfaceProxyDecorates an OpenTelemetry SpanProcessorInterface to capture span data into the OpenTelemetryCollector without altering telemetry pipeline behaviour.final Kernel · class · implements SpanProcessorInterfaceSpanProcessorInterfaceProxyAppDevPanel\Kernel\Collector\SpanProcessorInterfaceProxyDecorates an OpenTelemetry SpanProcessorInterface to capture span data into the OpenTelemetryCollector without altering telemetry pipeline behaviour.final Kernel · class · implements SpanProcessorInterfaceSpanProcessorInterfaceProxyAppDevPanel\Kernel\Collector\SpanProcessorInterfaceProxyDecorates an OpenTelemetry SpanProcessorInterface to capture span data into the OpenTelemetryCollector without altering telemetry pipeline behaviour.final Kernel · class · implements SpanProcessorInterface
TranslatorTranslatorInterfaceProxyAppDevPanel\Adapter\Yii3\Collector\Translator\TranslatorInterfaceProxyDecorates Yiisoft TranslatorInterface to feed translation lookups to TranslatorCollector.final Adapter/Yii3 · class · implements TranslatorInterfaceSymfonyTranslatorProxyAppDevPanel\Adapter\Symfony\Proxy\SymfonyTranslatorProxyDecorates Symfony's TranslatorInterface to feed translation lookups to TranslatorCollector.final Adapter/Symfony · class · implements TranslatorInterfaceLaravelTranslatorProxyAppDevPanel\Adapter\Laravel\Proxy\LaravelTranslatorProxyDecorates Laravel's Translator to feed translation lookups to TranslatorCollector.final Adapter/Laravel · class · implements TranslatorI18NProxyAppDevPanel\Adapter\Yii2\Proxy\I18NProxyDecorates Yii 2's I18N component to feed translation lookups to TranslatorCollector.final Adapter/Yii2 · class · extends I18NTranslatorProxyInjectorAppDevPanel\Adapter\Spiral\Container\TranslatorProxyInjector

Возможности инспектора

Инспектор предоставляет интроспекцию приложения в реальном времени (не привязана к записям отладки). Все API-функции не зависят от адаптера:

ВозможностьYii 3SymfonyLaravelYii2Cycle
Конфигурация
Схема БД
Маршруты
Файловый проводник
Git
Composer
Opcache
PHP Info
Команды
Container / DI
Кеш
Переводы

Различия в возможностях адаптеров

Текущие различия между адаптерами:

ВозможностьYii 3SymfonyLaravelYii2
Отладка шаблонов
Code coverage
Отладка asset bundles
Отладка middleware
Отладка шины сообщений
Прокси контейнера

TIP

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

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