Как получить доступ к данным профилирования программным путём

Как получить доступ к данным профилирования программным путём

В большинстве случаев, доступ к информации профилировщика получается и анализируется с использованием его веб-визуализатора. Однако вы также можете получить информацию профилирования путём программирования, благодаря методам, предоставленным сервисом profiler.

Когда доступен объект ответа, используйте метод loadProfileFromResponse(), чтобы получить доступ к ассоциированному с ним профилю:

1
2
// ... $profiler - это сервис 'профилировщика'
$profile = $profiler->loadProfileFromResponse($response);

Когда профилировщик хранит данные о заросе, он также ассоциирует с ними токен; этот токен доступен в HTTP-заголовке ответа X-Debug-Token. Используя этот токен, вы можете получить доступ к профилю любого прошлого ответа, благодаря методу loadProfile():

1
2
$token = $response->headers->get('X-Debug-Token');
$profile = $container->get('profiler')->loadProfile($token);

Tip

Когда включён профилировщик, но не включена панель инструментов веб-отладки, исследуйте страницу с помощью инструментов разработки вашего браузера, чтобы получить значение HTTP-заголовка X-Debug-Token.

Сервис profiler также предоставляет метод find() для поиска токеновв, основанных на некоторых критериях:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// получить последние 10 токенов
$tokens = $container->get('profiler')->find('', '', 10, '', '', '');

// получить последние 10 токенов для всех URL, содержащих /admin/
$tokens = $container->get('profiler')->find('', '/admin/', 10, '', '', '');

// получить последние 10 токенов для локальных запросов POST
$tokens = $container->get('profiler')->find('127.0.0.1', '', 10, 'POST', '', '');

// получить последние 10 токенов для запросов, которые были сделаны от 2 до 4 дней назад
$tokens = $container->get('profiler')
    ->find('', '', 10, '', '4 days ago', '2 days ago');

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.