Класс позволяет собирать и возвращать информацию о времени исполнения различных участков кода, количестве и времени 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' |
Зарезервировано