Class yii\debug\panels\RequestPanel

Inheritanceyii\debug\panels\RequestPanel » yii\debug\Panel » yii\base\Component
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-debug/blob/master/src/panels/RequestPanel.php

Debugger panel that collects and displays request data.

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
$displayVars array List of the PHP predefined variables that are allowed to be displayed in the request panel. yii\debug\panels\RequestPanel
$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
getFlashes() Getting flash messages without deleting them or touching deletion counters yii\debug\panels\RequestPanel

Property Details

Hide inherited properties

$displayVars public property (available since version 2.0.10)

List of the PHP predefined variables that are allowed to be displayed in the request panel. Note that a variable must be accessible via $GLOBALS. Otherwise it won't be displayed.

public array $displayVars = [
    
'_SERVER',
    
'_GET',
    
'_POST',
    
'_COOKIE',
    
'_FILES',
    
'_SESSION',
]

Method Details

Hide inherited methods

getDetail() public method

public getDetail( ): string
return string

Content that is displayed in debugger detail view

                public function getDetail()
{
    return Yii::$app->view->render('panels/request/detail', ['panel' => $this]);
}

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

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

            
getFlashes() protected method

Getting flash messages without deleting them or touching deletion counters

protected getFlashes( ): array
return array

Flash messages (key => message).

                protected function getFlashes()
{
    /* @var $session \yii\web\Session */
    $session = Yii::$app->has('session', true) ? Yii::$app->get('session') : null;
    if ($session === null || !$session->getIsActive()) {
        return [];
    }
    $counters = $session->get($session->flashParam, []);
    $flashes = [];
    foreach (array_keys($counters) as $key) {
        if (array_key_exists($key, $_SESSION)) {
            $flashes[$key] = $_SESSION[$key];
        }
    }
    return $flashes;
}

            
getName() public method

public getName( ): string
return string

Name of the panel

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

            
getSummary() public method

public getSummary( ): string
return string

Content that is displayed at debug toolbar

                public function getSummary()
{
    return Yii::$app->view->render('panels/request/summary', ['panel' => $this]);
}

            
getTraceLine() public method (available since version 2.0.7)

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

Returns a trace line

public getTraceLine( array $options ): string
$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 getUrl( null|array $additionalParams null ): string
$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 hasError( ): boolean

                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 isEnabled( ): boolean
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 load( mixed $data ): mixed
$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 save( ): mixed
return mixed

Data to be saved

                public function save()
{
    $headers = Yii::$app->getRequest()->getHeaders();
    $requestHeaders = [];
    foreach ($headers as $name => $value) {
        if (is_array($value) && count($value) == 1) {
            $requestHeaders[$name] = current($value);
        } else {
            $requestHeaders[$name] = $value;
        }
    }
    $responseHeaders = [];
    foreach (headers_list() as $header) {
        if (($pos = strpos($header, ':')) !== false) {
            $name = substr($header, 0, $pos);
            $value = trim(substr($header, $pos + 1));
            if (isset($responseHeaders[$name])) {
                if (!is_array($responseHeaders[$name])) {
                    $responseHeaders[$name] = [$responseHeaders[$name], $value];
                } else {
                    $responseHeaders[$name][] = $value;
                }
            } else {
                $responseHeaders[$name] = $value;
            }
        } else {
            $responseHeaders[] = $header;
        }
    }
    if (Yii::$app->requestedAction) {
        if (Yii::$app->requestedAction instanceof InlineAction) {
            $action = get_class(Yii::$app->requestedAction->controller) . '::' . Yii::$app->requestedAction->actionMethod . '()';
        } else {
            $action = get_class(Yii::$app->requestedAction) . '::run()';
        }
    } else {
        $action = null;
    }
    $data = [
        'flashes' => $this->getFlashes(),
        'statusCode' => Yii::$app->getResponse()->getStatusCode(),
        'requestHeaders' => $requestHeaders,
        'responseHeaders' => $responseHeaders,
        'route' => Yii::$app->requestedAction ? Yii::$app->requestedAction->getUniqueId() : Yii::$app->requestedRoute,
        'action' => $action,
        'actionParams' => Yii::$app->requestedParams,
        'general' => [
            'method' => Yii::$app->getRequest()->getMethod(),
            'isAjax' => Yii::$app->getRequest()->getIsAjax(),
            'isPjax' => Yii::$app->getRequest()->getIsPjax(),
            'isFlash' => Yii::$app->getRequest()->getIsFlash(),
            'isSecureConnection' => Yii::$app->getRequest()->getIsSecureConnection(),
        ],
        'requestBody' => Yii::$app->getRequest()->getRawBody() == '' ? [] : [
            'Content Type' => Yii::$app->getRequest()->getContentType(),
            'Raw' => Yii::$app->getRequest()->getRawBody(),
            'Decoded to Params' => Yii::$app->getRequest()->getBodyParams(),
        ],
    ];
    foreach ($this->displayVars as $name) {
        $data[trim($name, '_')] = empty($GLOBALS[$name]) ? [] : $GLOBALS[$name];
    }
    return $data;
}

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

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