76 lines
1.6 KiB
PHP
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];
|
|
}
|
|
}
|
|
}
|
|
|
|
} |