Пакет предназначен для профайлинга приложений написанных с использованием 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')); ...
см. limb/profile/tests/cases/toolkit/lmbProfileUtilsToolsTest.class.php
Обсуждение