Class yii\debug\panels\ProfilingPanel
Inheritance | yii\debug\panels\ProfilingPanel » yii\debug\Panel » yii\base\Component |
---|---|
Available since extension's version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-debug/blob/master/src/panels/ProfilingPanel.php |
Debugger panel that collects and displays performance profiling info.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$actions | array | Array of actions to add to the debug modules default controller. | yii\debug\Panel |
$data | mixed | Data associated with panel | yii\debug\Panel |
$detail | string | Content that is displayed in debugger detail view. | yii\debug\Panel |
$error | yii\debug\FlattenException|null | Error while saving the panel | yii\debug\Panel |
$id | string | Panel unique identifier. | yii\debug\Panel |
$module | yii\debug\Module | yii\debug\Panel | |
$name | string | Name of the panel. | yii\debug\Panel |
$summary | string | Content that is displayed at debug toolbar. | yii\debug\Panel |
$tag | string | Request data set identifier. | yii\debug\Panel |
$url | string | URL pointing to panel detail view. | yii\debug\Panel |
Public Methods
Method | Description | Defined By |
---|---|---|
getDetail() | yii\debug\panels\ProfilingPanel | |
getError() | yii\debug\Panel | |
getName() | yii\debug\panels\ProfilingPanel | |
getSummary() | yii\debug\panels\ProfilingPanel | |
getTraceLine() | Returns a trace line | yii\debug\Panel |
getUrl() | yii\debug\Panel | |
hasError() | yii\debug\Panel | |
isEnabled() | Checks whether this panel is enabled. | yii\debug\Panel |
load() | Loads data into the panel | yii\debug\Panel |
save() | Saves data to be later used in debugger detail view. | yii\debug\panels\ProfilingPanel |
setError() | yii\debug\Panel |
Protected Methods
Method | Description | Defined By |
---|---|---|
getModels() | Returns array of profiling models that can be used in a data provider. | yii\debug\panels\ProfilingPanel |
Method Details
public string getDetail ( ) | ||
return | string |
Content that is displayed in debugger detail view |
---|
public function getDetail()
{
$searchModel = new Profile();
$dataProvider = $searchModel->search(Yii::$app->request->getQueryParams(), $this->getModels());
return Yii::$app->view->render('panels/profile/detail', [
'panel' => $this,
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
'memory' => sprintf('%.3f MB', $this->data['memory'] / 1048576),
'time' => number_format($this->data['time'] * 1000) . ' ms',
]);
}
Defined in: yii\debug\Panel::getError()
public yii\debug\FlattenException|null getError ( ) |
public function getError()
{
return $this->error;
}
Returns array of profiling models that can be used in a data provider.
protected array getModels ( ) | ||
return | array |
Models |
---|
protected function getModels()
{
if ($this->_models === null) {
$this->_models = [];
$timings = Yii::getLogger()->calculateTimings(isset($this->data['messages']) ? $this->data['messages'] : []);
foreach ($timings as $seq => $profileTiming) {
$this->_models[] = [
'duration' => $profileTiming['duration'] * 1000, // in milliseconds
'category' => $profileTiming['category'],
'info' => $profileTiming['info'],
'level' => $profileTiming['level'],
'timestamp' => $profileTiming['timestamp'] * 1000, //in milliseconds
'seq' => $seq,
];
}
}
return $this->_models;
}
public string getName ( ) | ||
return | string |
Name of the panel |
---|
public function getName()
{
return 'Profiling';
}
public string getSummary ( ) | ||
return | string |
Content that is displayed at debug toolbar |
---|
public function getSummary()
{
return Yii::$app->view->render('panels/profile/summary', [
'memory' => sprintf('%.3f MB', $this->data['memory'] / 1048576),
'time' => number_format($this->data['time'] * 1000) . ' ms',
'panel' => $this
]);
}
Defined in: yii\debug\Panel::getTraceLine()
Returns a trace line
public string getTraceLine ( $options ) | ||
$options | array |
The array with trace |
return | string |
The trace line |
---|
public function getTraceLine($options)
{
if (!isset($options['text'])) {
$options['text'] = "{$options['file']}:{$options['line']}";
}
$traceLine = $this->module->traceLine;
if ($traceLine === false) {
return $options['text'];
}
$options['file'] = str_replace('\\', '/', $options['file']);
$rawLink = $traceLine instanceof \Closure ? $traceLine($options, $this) : $traceLine;
return strtr($rawLink, ['{file}' => $options['file'], '{line}' => $options['line'], '{text}' => $options['text']]);
}
Defined in: yii\debug\Panel::getUrl()
public string getUrl ( $additionalParams = null ) | ||
$additionalParams | null|array |
Optional additional parameters to add to the route |
return | string |
URL pointing to panel detail view |
---|
public function getUrl($additionalParams = null)
{
$route = [
'/' . $this->module->id . '/default/view',
'panel' => $this->id,
'tag' => $this->tag,
];
if (is_array($additionalParams)){
$route = ArrayHelper::merge($route, $additionalParams);
}
return Url::toRoute($route);
}
Defined in: yii\debug\Panel::hasError()
public boolean hasError ( ) |
public function hasError()
{
return $this->error !== null;
}
Defined in: yii\debug\Panel::isEnabled()
Checks whether this panel is enabled.
public boolean isEnabled ( ) | ||
return | boolean |
Whether this panel is enabled. |
---|
public function isEnabled()
{
return true;
}
Defined in: yii\debug\Panel::load()
Loads data into the panel
public void load ( $data ) | ||
$data | mixed |
public function load($data)
{
$this->data = $data;
}
Saves data to be later used in debugger detail view.
This method is called on every page where debugger is enabled.
public mixed save ( ) | ||
return | mixed |
Data to be saved |
---|
public function save()
{
$target = $this->module->logTarget;
$messages = $target->filterMessages($target->messages, Logger::LEVEL_PROFILE);
return [
'memory' => memory_get_peak_usage(),
'time' => microtime(true) - YII_BEGIN_TIME,
'messages' => $messages,
];
}
Defined in: yii\debug\Panel::setError()
public void setError ( yii\debug\FlattenException $error ) | ||
$error | yii\debug\FlattenException |
public function setError(FlattenException $error)
{
$this->error = $error;
}