From d4c3c356bb4089da674c89c2ebb69de9237c3096 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 00:38:44 +0100 Subject: [PATCH 01/13] added panels position --- extensions/debug/Module.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/extensions/debug/Module.php b/extensions/debug/Module.php index f3b8efb..98fe9a6 100644 --- a/extensions/debug/Module.php +++ b/extensions/debug/Module.php @@ -42,6 +42,10 @@ class Module extends \yii\base\Module */ public $panels = []; /** + * @var string postion of the custom configured panels 'begin' or 'end' + */ + public $panelsPosition = 'end'; + /** * @var string the directory storing the debugger data files. This can be specified using a path alias. */ public $dataPath = '@runtime/debug'; @@ -64,7 +68,15 @@ class Module extends \yii\base\Module Yii::$app->getView()->on(View::EVENT_END_BODY, [$this, 'renderToolbar']); }); - $this->panels = ArrayHelper::merge($this->corePanels(), $this->panels); + switch ($this->panelsPosition) { + case 'begin': + $this->panels = ArrayHelper::merge($this->panels, $this->corePanels()); + break; + case 'end': + default: + $this->panels = ArrayHelper::merge($this->corePanels(), $this->panels); + break; + } foreach ($this->panels as $id => $config) { $config['module'] = $this; $config['id'] = $id; From 09f303a589565cbb21b16f8c30c2f0cc49781eb4 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 00:40:19 +0100 Subject: [PATCH 02/13] moved 'Yii Debugger' from view to panel --- extensions/debug/views/default/panels/config/summary.php | 3 +++ extensions/debug/views/default/view.php | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/debug/views/default/panels/config/summary.php b/extensions/debug/views/default/panels/config/summary.php index c2af8ae..15c8930 100644 --- a/extensions/debug/views/default/panels/config/summary.php +++ b/extensions/debug/views/default/panels/config/summary.php @@ -6,6 +6,9 @@ use yii\helpers\Html; * @var yii\debug\panels\ConfigPanel $panel */ ?> +
+ 'Back to main debug page']) ?> +
-
- 'Back to main debug page']) ?> -
getSummary() ?> From bc20c64e160ff06f71faaf6581f766c1cea0fb79 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 00:40:36 +0100 Subject: [PATCH 03/13] fixed time formatting --- extensions/debug/views/default/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/debug/views/default/index.php b/extensions/debug/views/default/index.php index 4adc29f..05d614c 100644 --- a/extensions/debug/views/default/index.php +++ b/extensions/debug/views/default/index.php @@ -59,7 +59,7 @@ echo GridView::widget([ 'attribute' => 'time', 'value' => function ($data) use ($timeFormatter) { - return $timeFormatter->asDateTime($data['time'], 'long'); + return $timeFormatter->asDateTime($data['time'], 'H:i_j.M'); }, ], 'ip', From 898c17887ad5532c446548e42cb4558d4e8660c8 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 00:42:03 +0100 Subject: [PATCH 04/13] use the url of the first panel as link, when toolbar is minimized --- extensions/debug/views/default/toolbar.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/debug/views/default/toolbar.php b/extensions/debug/views/default/toolbar.php index b2a380b..68e02e6 100644 --- a/extensions/debug/views/default/toolbar.php +++ b/extensions/debug/views/default/toolbar.php @@ -23,7 +23,8 @@ if (window.localStorage) { } EOD; -$url = $panels['request']->getUrl(); +$firstPanel = reset($panels); +$url = $firstPanel->getUrl(); ?>
From ec63c91510ccc7daf99f4514552c2717375c9a5e Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 00:42:16 +0100 Subject: [PATCH 05/13] added medium size columns --- extensions/debug/views/default/view.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/debug/views/default/view.php b/extensions/debug/views/default/view.php index 39d96cb..8f1cfb1 100644 --- a/extensions/debug/views/default/view.php +++ b/extensions/debug/views/default/view.php @@ -29,7 +29,7 @@ $this->title = 'Yii Debugger';
-
+
$panel) { @@ -41,7 +41,7 @@ $this->title = 'Yii Debugger'; ?>
-
+
Date: Fri, 7 Feb 2014 00:43:02 +0100 Subject: [PATCH 06/13] fixed indent (tabs) --- extensions/debug/views/default/toolbar.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/debug/views/default/toolbar.php b/extensions/debug/views/default/toolbar.php index 68e02e6..d240a8e 100644 --- a/extensions/debug/views/default/toolbar.php +++ b/extensions/debug/views/default/toolbar.php @@ -27,11 +27,11 @@ $firstPanel = reset($panels); $url = $firstPanel->getUrl(); ?>
-
- - - -
+
+ + + +
getSummary() ?> From 61cb44478b1fe55a8f90943bee1b53da36303b86 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 02:40:27 +0100 Subject: [PATCH 07/13] moved getYiiLogo from panel to module --- extensions/debug/Module.php | 10 ++++++++++ extensions/debug/panels/ConfigPanel.php | 26 ++++++++++++++++---------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/extensions/debug/Module.php b/extensions/debug/Module.php index 98fe9a6..9e19ff5 100644 --- a/extensions/debug/Module.php +++ b/extensions/debug/Module.php @@ -56,6 +56,16 @@ class Module extends \yii\base\Module public $historySize = 50; /** + * Returns Yii logo ready to use in `(.*).*$%ms','$1',$pinfo); + $phpinfo = str_replace(' Date: Fri, 7 Feb 2014 02:46:20 +0100 Subject: [PATCH 08/13] added parsed phpinfo to config detail, removed controller action --- extensions/debug/controllers/DefaultController.php | 4 ---- extensions/debug/views/default/panels/config/detail.php | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/extensions/debug/controllers/DefaultController.php b/extensions/debug/controllers/DefaultController.php index f4be8a5..a79741f 100644 --- a/extensions/debug/controllers/DefaultController.php +++ b/extensions/debug/controllers/DefaultController.php @@ -87,10 +87,6 @@ class DefaultController extends Controller ]); } - public function actionPhpinfo() - { - phpinfo(); - } private $_manifest; diff --git a/extensions/debug/views/default/panels/config/detail.php b/extensions/debug/views/default/panels/config/detail.php index f89a686..88e96a1 100644 --- a/extensions/debug/views/default/panels/config/detail.php +++ b/extensions/debug/views/default/panels/config/detail.php @@ -8,8 +8,6 @@ $extensions = $panel->getExtensions(); ?>

Configuration

-
'btn btn-info', 'target' => 'phpinfo']) ?>
- render('panels/config/table', [ 'caption' => 'Application Configuration', @@ -37,4 +35,6 @@ echo $this->render('panels/config/table', [ 'Memcache' => $panel->data['php']['memcache'] ? 'Enabled' : 'Disabled', ], ]); + +echo $panel->getPhpInfo(); ?> \ No newline at end of file From 840d588fe0f90c99dba1038103822ac60f6c8946 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 02:47:23 +0100 Subject: [PATCH 09/13] added panel support for index view --- extensions/debug/controllers/DefaultController.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/extensions/debug/controllers/DefaultController.php b/extensions/debug/controllers/DefaultController.php index a79741f..ec6b8b1 100644 --- a/extensions/debug/controllers/DefaultController.php +++ b/extensions/debug/controllers/DefaultController.php @@ -50,7 +50,13 @@ class DefaultController extends Controller $searchModel = new Debug(); $dataProvider = $searchModel->search($_GET, $this->getManifest()); + // load latest request + $tags = array_keys($this->getManifest()); + $tag = reset($tags); + $this->loadData($tag); + return $this->render('index', [ + 'panels' => $this->module->panels, 'dataProvider' => $dataProvider, 'searchModel' => $searchModel, ]); From 18a3e9aa0bc085e5b3c50e463c699443ce03740a Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 02:48:12 +0100 Subject: [PATCH 10/13] removed separator, panel has only one unique link --- extensions/debug/views/default/panels/profile/summary.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/extensions/debug/views/default/panels/profile/summary.php b/extensions/debug/views/default/panels/profile/summary.php index f12ea88..9dac6a7 100644 --- a/extensions/debug/views/default/panels/profile/summary.php +++ b/extensions/debug/views/default/panels/profile/summary.php @@ -1,6 +1,4 @@ - From e4f0e800c6ac3034c391b0e8564f32f7a372b327 Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 02:49:29 +0100 Subject: [PATCH 11/13] refactored panels to achieve a consistent look --- extensions/debug/views/default/index.php | 22 +++++++++++++--------- .../debug/views/default/panels/config/summary.php | 12 ++++-------- extensions/debug/views/default/toolbar.php | 17 ++++++++++------- extensions/debug/views/default/view.php | 13 ++++++++----- 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/extensions/debug/views/default/index.php b/extensions/debug/views/default/index.php index 05d614c..1e11d19 100644 --- a/extensions/debug/views/default/index.php +++ b/extensions/debug/views/default/index.php @@ -3,6 +3,7 @@ use yii\helpers\Html; use yii\grid\GridView; use yii\data\ArrayDataProvider; +use yii\debug\panels\ConfigPanel; /** * @var \yii\web\View $this @@ -14,15 +15,18 @@ use yii\data\ArrayDataProvider; $this->title = 'Yii Debugger'; ?>
-
-
- - - -
-
- Yii Debugger -
+ + +
+ + + getSummary() ?> +
diff --git a/extensions/debug/views/default/panels/config/summary.php b/extensions/debug/views/default/panels/config/summary.php index 15c8930..66a8a44 100644 --- a/extensions/debug/views/default/panels/config/summary.php +++ b/extensions/debug/views/default/panels/config/summary.php @@ -6,15 +6,11 @@ use yii\helpers\Html; * @var yii\debug\panels\ConfigPanel $panel */ ?> -
- 'Back to main debug page']) ?> -
-
- data['php']['version'], ['phpinfo'], ['title' => 'Show phpinfo()', 'target' => 'phpinfo']) ?> -
diff --git a/extensions/debug/views/default/toolbar.php b/extensions/debug/views/default/toolbar.php index d240a8e..5ed34e5 100644 --- a/extensions/debug/views/default/toolbar.php +++ b/extensions/debug/views/default/toolbar.php @@ -5,6 +5,7 @@ * @var string $tag * @var string $position */ +use yii\helpers\Html; use yii\debug\panels\ConfigPanel; $minJs = <<getUrl(); ?>
-
- - - -
+ + - getSummary() ?> + getSummary() ?>
diff --git a/extensions/debug/views/default/view.php b/extensions/debug/views/default/view.php index 8f1cfb1..f3784a1 100644 --- a/extensions/debug/views/default/view.php +++ b/extensions/debug/views/default/view.php @@ -17,11 +17,14 @@ $this->title = 'Yii Debugger'; ?>
-
- - - -
+ + + getSummary() ?> From 2f5526656beee94a976b91c0e77e5d40330aeabd Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 03:17:37 +0100 Subject: [PATCH 12/13] fixed indent (tabs) --- extensions/debug/controllers/DefaultController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/debug/controllers/DefaultController.php b/extensions/debug/controllers/DefaultController.php index ec6b8b1..6491f95 100644 --- a/extensions/debug/controllers/DefaultController.php +++ b/extensions/debug/controllers/DefaultController.php @@ -50,13 +50,13 @@ class DefaultController extends Controller $searchModel = new Debug(); $dataProvider = $searchModel->search($_GET, $this->getManifest()); - // load latest request - $tags = array_keys($this->getManifest()); - $tag = reset($tags); - $this->loadData($tag); + // load latest request + $tags = array_keys($this->getManifest()); + $tag = reset($tags); + $this->loadData($tag); return $this->render('index', [ - 'panels' => $this->module->panels, + 'panels' => $this->module->panels, 'dataProvider' => $dataProvider, 'searchModel' => $searchModel, ]); From 68281d55cb4ce4b47c24b6b5a65075974861e9ef Mon Sep 17 00:00:00 2001 From: Tobias Munk Date: Fri, 7 Feb 2014 12:12:27 +0100 Subject: [PATCH 13/13] fixed code-style --- extensions/debug/DebugAsset.php | 1 + extensions/debug/LogTarget.php | 1 - extensions/debug/Module.php | 2 +- extensions/debug/controllers/DefaultController.php | 2 +- extensions/debug/panels/ConfigPanel.php | 29 +++++++++++----------- extensions/debug/panels/DbPanel.php | 5 ++-- extensions/debug/panels/LogPanel.php | 4 +-- extensions/debug/panels/ProfilingPanel.php | 2 +- extensions/debug/views/default/index.php | 13 ++++------ 9 files changed, 28 insertions(+), 31 deletions(-) diff --git a/extensions/debug/DebugAsset.php b/extensions/debug/DebugAsset.php index da0b91f..34b4617 100644 --- a/extensions/debug/DebugAsset.php +++ b/extensions/debug/DebugAsset.php @@ -6,6 +6,7 @@ */ namespace yii\debug; + use yii\web\AssetBundle; /** diff --git a/extensions/debug/LogTarget.php b/extensions/debug/LogTarget.php index 3f0be69..ee1f6eb 100644 --- a/extensions/debug/LogTarget.php +++ b/extensions/debug/LogTarget.php @@ -154,5 +154,4 @@ class LogTarget extends Target # / 2 because messages are in couple (begin/end) return count($profileLogs['messages']) / 2; } - } diff --git a/extensions/debug/Module.php b/extensions/debug/Module.php index 890d6ae..ae166bd 100644 --- a/extensions/debug/Module.php +++ b/extensions/debug/Module.php @@ -72,7 +72,7 @@ class Module extends \yii\base\Module $this->dataPath = Yii::getAlias($this->dataPath); $this->logTarget = Yii::$app->getLog()->targets['debug'] = new LogTarget($this); // do not initialize view component before application is ready (needed when debug in preload) - Yii::$app->on(Application::EVENT_BEFORE_REQUEST, function() { + Yii::$app->on(Application::EVENT_BEFORE_REQUEST, function () { Yii::$app->getView()->on(View::EVENT_END_BODY, [$this, 'renderToolbar']); }); diff --git a/extensions/debug/controllers/DefaultController.php b/extensions/debug/controllers/DefaultController.php index 6491f95..c2ef235 100644 --- a/extensions/debug/controllers/DefaultController.php +++ b/extensions/debug/controllers/DefaultController.php @@ -39,7 +39,7 @@ class DefaultController extends Controller public function actions() { $actions = []; - foreach($this->module->panels as $panel) { + foreach ($this->module->panels as $panel) { $actions = array_merge($actions, $panel->actions); } return $actions; diff --git a/extensions/debug/panels/ConfigPanel.php b/extensions/debug/panels/ConfigPanel.php index 2f1516a..a527d9b 100644 --- a/extensions/debug/panels/ConfigPanel.php +++ b/extensions/debug/panels/ConfigPanel.php @@ -56,21 +56,22 @@ class ConfigPanel extends Panel return $data; } - /** - * Returns the BODY contents of the phpinfo() output - * - * @return array - */ - public function getPhpInfo(){ - ob_start(); - phpinfo(); - $pinfo = ob_get_contents(); - ob_end_clean(); - $phpinfo = preg_replace( '%^.*(.*).*$%ms','$1',$pinfo); - $phpinfo = str_replace('
(.*).*$%ms', '$1', $pinfo); + $phpinfo = str_replace('
getTotalQueryTime($timings) * 1000) . ' ms'; return Yii::$app->view->render('panels/db/summary', [ - 'timings' => $this->calculateTimings(), + 'timings' => $this->calculateTimings(), 'panel' => $this, 'queryCount' => $queryCount, 'queryTime' => $queryTime, @@ -127,7 +127,7 @@ class DbPanel extends Panel $this->_models = []; $timings = $this->calculateTimings(); - foreach($timings as $seq => $dbTiming) { + foreach ($timings as $seq => $dbTiming) { $this->_models[] = [ 'type' => $this->getQueryType($dbTiming['info']), 'query' => $dbTiming['info'], @@ -164,5 +164,4 @@ class DbPanel extends Panel { return (($this->criticalQueryThreshold !== null) && ($count > $this->criticalQueryThreshold)); } - } diff --git a/extensions/debug/panels/LogPanel.php b/extensions/debug/panels/LogPanel.php index 984c64b..67b9773 100644 --- a/extensions/debug/panels/LogPanel.php +++ b/extensions/debug/panels/LogPanel.php @@ -50,7 +50,7 @@ class LogPanel extends Panel $dataProvider = $searchModel->search(Yii::$app->request->getQueryParams(), $this->getModels()); return Yii::$app->view->render('panels/log/detail', [ - 'dataProvider' => $dataProvider, + 'dataProvider' => $dataProvider, 'panel' => $this, 'searchModel' => $searchModel, ]); @@ -78,7 +78,7 @@ class LogPanel extends Panel if ($this->_models === null || $refresh) { $this->_models = []; - foreach($this->data['messages'] as $message) { + foreach ($this->data['messages'] as $message) { $this->_models[] = [ 'message' => $message[0], 'level' => $message[1], diff --git a/extensions/debug/panels/ProfilingPanel.php b/extensions/debug/panels/ProfilingPanel.php index 7abe7d4..b287bfe 100644 --- a/extensions/debug/panels/ProfilingPanel.php +++ b/extensions/debug/panels/ProfilingPanel.php @@ -86,7 +86,7 @@ class ProfilingPanel extends Panel $this->_models = []; $timings = Yii::$app->getLog()->calculateTimings($this->data['messages']); - foreach($timings as $seq => $profileTiming) { + foreach ($timings as $seq => $profileTiming) { $this->_models[] = [ 'duration' => $profileTiming['duration'] * 1000, // in milliseconds 'category' => $profileTiming['category'], diff --git a/extensions/debug/views/default/index.php b/extensions/debug/views/default/index.php index 1e11d19..3477f69 100644 --- a/extensions/debug/views/default/index.php +++ b/extensions/debug/views/default/index.php @@ -53,17 +53,15 @@ echo GridView::widget([ ['class' => 'yii\grid\SerialColumn'], [ 'attribute' => 'tag', - 'value' => function ($data) - { + 'value' => function ($data) { return Html::a($data['tag'], ['view', 'tag' => $data['tag']]); }, 'format' => 'html', ], [ 'attribute' => 'time', - 'value' => function ($data) use ($timeFormatter) - { - return $timeFormatter->asDateTime($data['time'], 'H:i_j.M'); + 'value' => function ($data) use ($timeFormatter) { + return $timeFormatter->asDateTime($data['time'], 'short'); }, ], 'ip', @@ -75,7 +73,7 @@ echo GridView::widget([ if ($dbPanel->isQueryCountCritical($data['sqlCount'])) { - $content = Html::tag('b', $data['sqlCount']) . ' ' . Html::tag('span','',['class' => 'glyphicon glyphicon-exclamation-sign']); + $content = Html::tag('b', $data['sqlCount']) . ' ' . Html::tag('span', '', ['class' => 'glyphicon glyphicon-exclamation-sign']); return Html::a($content, ['view', 'panel' => 'db', 'tag' => $data['tag']], [ 'title' => 'Too many queries. Allowed count is ' . $dbPanel->criticalQueryThreshold, ]); @@ -92,8 +90,7 @@ echo GridView::widget([ ], [ 'attribute'=>'ajax', - 'value' => function ($data) - { + 'value' => function ($data) { return $data['ajax'] ? 'Yes' : 'No'; }, 'filter' => ['No', 'Yes'],