Содержание

Пакет PROFILE

Пакет предназначен для профайлинга приложений написанных с использованием Limb. Основные функции, предоставляемые пакетом:

Автопрофайлинг запросов

Автопрофайлинг умеет собирать информацию о запросах в БД (тест, время, stack trace), запросах к кешам (ключ, время, stack trace) и информацию о окружении (содержимое _SERVER, _ENV и т.д.). Поддерживаются несколько методов вывода информации о запросе:

Настройка

Файл profile.conf.php:

$conf['enabled'] = true;
$conf['profile_reporter'] = 'lmbProfilePanelReporter'; //переключение методов вывода (lmbProfilePanelReporter - панель, lmbProfileTableReporter - таблица)

Интеграция

Для включения автопрофайлинга в вашем приложении необходимо включить фильтр lmbProfileReportingFilter (он находится в файле limb/profile/src/filter/lmbProfileReportingFilter.class.php) в начало вашего приложения.

Если вы используете lmbWebApplication в качестве базового класса приложения, то интеграция может выглядеть так:

lmb_require('limb/web_app/src/lmbWebApplication.class.php');
 
class MyApplication extends lmbWebApplication
{
  function __construct()
  {
    $this->addPreActionFilter(new lmbHandle('limb/profile/src/filter/lmbProfileReportingFilter.class.php'));
  }
}

Если же вы построили свое приложение «с нуля», то

lmb_require('limb/filter_chain/src/lmbFilterChain.class.php');
lmb_require('limb/core/src/lmbHandle.class.php');
 
class LimbApplication extends lmbFilterChain
{
  function __construct()
  {
    $this->registerFilter(new lmbHandle('limb/web_app/src/filter/lmbUncaughtExceptionHandlingFilter'));
    //Обратите внимание, что фильтр расположен после lmbUncaughtExceptionHandlingFilter. Это необходимо для того, чтобы отлавливать ошибки, возникающие в работе самого lmbProfileReportingFilter (ошибки в настройке БД, кэшей, etc).
    $this->registerFilter(new lmbHandle('limb/profile/src/filter/lmbProfileReportingFilter.class.php'));
 
...

"Ручной" профайлинг

FIXME см. limb/profile/tests/cases/toolkit/lmbProfileUtilsToolsTest.class.php