Версия: 6.x
burger close
Класс Timing

Подробное описание

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

Конструктор(ы)

__construct (   $page_id)
protected

Singleton, Получать экземпляр через ::getInstance()

Аргументы
integer$page_idУникальный идентификатор страницы, строится на основе REQUEST_URI

Методы

addSqlQueryToMeasure (   $query,
  $duration_sec,
  $stack_trace = [] 
)

Добавляет сведения по SQL запросу в лог

Аргументы
$query
$duration_sec
$stack_trace
endMeasure ( )

Завершаем замер времени выполненияи подсчет SQL

Возвращает
void
static getCurrentPageId ( )
static

Возвращает уникальный идентификатор текущей страницы

Возвращает
string
static getInstance (   $page_id = null)
static

Возвращает экземпляр

Аргументы
null$page_id
Возвращает
self
getPlotData ( )

Возвращает данные для построения диаграммы

Возвращает
array
getReport (   $sort,
  $asc = true,
  $block_uniq = null 
)

Возвращает отчет по одной странице

Аргументы
string$sortполе для сортировки
bool$ascНаправление сортировки true - по возрастанию, false - по убыванию
string | null$block_uniq- фильтровать по block_id конкретного контроллера. "-" - по фронт контроллеру
Возвращает
array | bool
getReportUrl ( )

Возвращает ссылку на страницу отчета по текущей странице

Возвращает
string
getTypeTitle (   $type,
  $default = '' 
)

Возвращает название этапа

Аргументы
string$type
string$default
Возвращает
mixed|string
initializePageInfo ( )

Инициализирует данные для сохранения сведений о странице

isEnable ( )

Возвращает true, если включен сбор данных о времени выполнения

Возвращает
bool
prepareReport (   $sort,
  $asc = true,
  $block_uniq = null 
)
protected

Добавляет суммарные сведения в отчет

Аргументы
string$sortПоле для сортировки
bool$ascНаправление сортировки по возрастанию
string  |  null$block_uniqФильтр по контроллеру
Возвращает
array
startMeasure (   $type,
  $block_uniq = '-',
  $title = '',
  $start_time = null 
)

Начинает замер времени выполнения и подсчет SQL запросов. Замер времени для данного блока завершается, когда повторно вызывается данный метод или когда вызывается метод endMeasure

Аргументы
string$typeИдентификатор из констант self::TYPE_
string$block_uniqУникальный идентификатор или "-"
string$titleНазвание блока замера времени
null$start_time

Поля

$current_measure = []
protected
$enable
protected
$instance = []
staticprotected
$page_id
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'

Зарезервировано