Class yii\debug\panels\ProfilingPanel

Inheritanceyii\debug\panels\ProfilingPanel » yii\debug\Panel » yii\base\Component
Available since extension's version2.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

Hide inherited 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
$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

Protected Properties

Hide inherited properties

Property Type Description Defined By
$error yii\debug\FlattenException|null Error while saving the panel yii\debug\Panel

Protected Methods

Hide inherited 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

Hide inherited methods

getDetail() public method

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',
    ]);
}

            
getError() public method (available since version 2.0.10)
public yii\debug\FlattenException|null getError ( )

                public function getError()
{
    return $this->error;
}

            
getModels() protected method

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;
}

            
getName() public method

public string getName ( )
return string

Name of the panel

                public function getName()
{
    return 'Profiling';
}

            
getSummary() public method

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
    ]);
}

            
getTraceLine() public method (available since version 2.0.7)

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']]);
}

            
getUrl() public method
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);
}

            
hasError() public method (available since version 2.0.10)
public boolean hasError ( )

                public function hasError()
{
    return $this->error !== null;
}

            
isEnabled() public method (available since version 2.0.10)

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;
}

            
load() public method

Defined in: yii\debug\Panel::load()

Loads data into the panel

public void load ( $data )
$data mixed

                public function load($data)
{
    $this->data = $data;
}

            
save() public method

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,
    ];
}

            
setError() public method (available since version 2.0.10)
public void setError ( yii\debug\FlattenException $error )
$error yii\debug\FlattenException

                public function setError(FlattenException $error)
{
    $this->error = $error;
}