Server_AccessControl/vendor/yiisoft/yii2-debug/models/Router.php
2020-10-06 14:27:47 +07:00

76 lines
1.6 KiB
PHP

<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace yii\debug\models;
use yii\base\Model;
use yii\log\Logger;
/**
* Router model
*
* @author Dmitriy Bashkarev <dmitriy@bashkarev.com>
* @since 2.0.8
*/
class Router extends Model
{
/**
* @var array logged messages.
*/
public $messages = [];
/**
* @var string|null info message.
*/
public $message;
/**
* @var array logged rules.
* ```php
* [
* [
* 'rule' => (string),
* 'match' => (bool),
* 'parent'=> parent class (string)
* ]
* ]
* ```
*/
public $logs = [];
/**
* @var int count, before match.
*/
public $count = 0;
/**
* @var bool
*/
public $hasMatch = false;
/**
* @inheritdoc
*/
public function init()
{
parent::init();
$last = null;
foreach ($this->messages as $message) {
if ($message[1] === Logger::LEVEL_TRACE && is_string($message[0])) {
$this->message = $message[0];
} elseif (isset($message[0]['rule'], $message[0]['match'])) {
if (!empty($last['parent']) && $last['parent'] === $message[0]['rule']) {
continue;
}
$this->logs[] = $message[0];
++$this->count;
if ($message[0]['match']) {
$this->hasMatch = true;
}
$last = $message[0];
}
}
}
}