Класс позволяет собирать и возвращать информацию о времени исполнения различных участков кода, количестве и времени SQL запросах различных блоков. Класс использует сессию для хранения данных.
Важно учитывать: данный класс инстанцируется сразу после старта сессии, когда еще не активированы подписчики на события. В некоторых случаях, пользователь на этом этапе еще будет не авторизован, так как Auth::init сработает позже и auth-ticket применится позже. Работать с объектами (ORM), расширяемыми с помощью событий в данном класе нельзя. Допустимо использовать только низкоуровневые обращения к БД и суперглобальным массивам.
Открытые члены | |
initializePageInfo () | |
getTypeTitle ($type, $default= '') | |
startMeasure ($type, $block_uniq= '-', $title= '', $start_time=null) | |
addSqlQueryToMeasure ($query, $duration_sec, $stack_trace=[]) | |
endMeasure () | |
getReport ($sort, $asc=true, $block_uniq=null) | |
isEnable () | |
getReportUrl () | |
getPlotData () | |
Открытые статические члены | |
static | getInstance ($page_id=null) |
static | getCurrentPageId () |
Поля данных | |
const | SESSION_VAR = 'performance' |
const | PAGE_LIMIT = 10 |
const | TYPE_INITIALIZE = 'initialize' |
const | TYPE_CONTROLLER_FRONT = 'controller-front' |
const | TYPE_CONTROLLER_BLOCK = 'controller-block' |
const | TYPE_OTHER = 'other' |
const | SECTION_DATA = 'data' |
const | SECTION_INFO = 'info' |
const | SUBSECTION_INFO_DATE = 'date' |
const | SUBSECTION_INFO_ABSOLUTE_URL = 'absolute_url' |
const | SUBSECTION_INFO_TOTAL_TIME = 'total_time' |
const | SUBSECTION_INFO_TOTAL_SQL_TIME = 'total_sql_time' |
const | SUBSECTION_INFO_TOTAL_SQL_QUERIES = 'total_sql_queries' |
Защищенные члены | |
__construct ($page_id) | |
prepareReport ($sort, $asc=true, $block_uniq=null) | |
Защищенные данные | |
$page_id | |
$current_measure = [] | |
$enable | |
Статические защищенные данные | |
static | $instance = [] |
|
protected |
Singleton, Получать экземпляр через ::getInstance()
integer | $page_id | Уникальный идентификатор страницы, строится на основе REQUEST_URI |
addSqlQueryToMeasure | ( | $query, | |
$duration_sec, | |||
$stack_trace = [] |
|||
) |
Добавляет сведения по SQL запросу в лог
$query | |
$duration_sec | |
$stack_trace |
endMeasure | ( | ) |
Завершаем замер времени выполненияи подсчет SQL
|
static |
Возвращает уникальный идентификатор текущей страницы
|
static |
Возвращает экземпляр
null | $page_id |
getPlotData | ( | ) |
Возвращает данные для построения диаграммы
getReport | ( | $sort, | |
$asc = true , |
|||
$block_uniq = null |
|||
) |
Возвращает отчет по одной странице
string | $sort | поле для сортировки |
bool | $asc | Направление сортировки true - по возрастанию, false - по убыванию |
string | null | $block_uniq | - фильтровать по block_id конкретного контроллера. "-" - по фронт контроллеру |
getReportUrl | ( | ) |
Возвращает ссылку на страницу отчета по текущей странице
getTypeTitle | ( | $type, | |
$default = '' |
|||
) |
Возвращает название этапа
string | $type | |
string | $default |
initializePageInfo | ( | ) |
Инициализирует данные для сохранения сведений о странице
isEnable | ( | ) |
Возвращает true, если включен сбор данных о времени выполнения
|
protected |
Добавляет суммарные сведения в отчет
string | $sort | Поле для сортировки |
bool | $asc | Направление сортировки по возрастанию |
string | null | $block_uniq | Фильтр по контроллеру |
startMeasure | ( | $type, | |
$block_uniq = '-' , |
|||
$title = '' , |
|||
$start_time = null |
|||
) |
Начинает замер времени выполнения и подсчет SQL запросов. Замер времени для данного блока завершается, когда повторно вызывается данный метод или когда вызывается метод endMeasure
string | $type | Идентификатор из констант self::TYPE_ |
string | $block_uniq | Уникальный идентификатор или "-" |
string | $title | Название блока замера времени |
null | $start_time |
|
protected |
|
protected |
|
staticprotected |
|
protected |
const PAGE_LIMIT = 10 |
Кол-во страниц, по которым будут сохраняться данные
const SECTION_DATA = 'data' |
const SECTION_INFO = 'info' |
const SESSION_VAR = 'performance' |
const SUBSECTION_INFO_ABSOLUTE_URL = 'absolute_url' |
const SUBSECTION_INFO_DATE = 'date' |
const SUBSECTION_INFO_TOTAL_SQL_QUERIES = 'total_sql_queries' |
const SUBSECTION_INFO_TOTAL_SQL_TIME = 'total_sql_time' |
const SUBSECTION_INFO_TOTAL_TIME = 'total_time' |
const TYPE_CONTROLLER_BLOCK = 'controller-block' |
Замер происходит в Application
const TYPE_CONTROLLER_FRONT = 'controller-front' |
Замер происходит в RS
const TYPE_INITIALIZE = 'initialize' |
Замер начинается в классе AbstractSetup
const TYPE_OTHER = 'other' |
Зарезервировано