Skip to content
This repository was archived by the owner on Sep 6, 2023. It is now read-only.

Commit 403d973

Browse files
author
gregory
committed
Улучшен скелет, Writer вынесен в отдельную папку, добавлен набросок проверки режимов отображения через ShowModeValidator
1 parent 2fb37d9 commit 403d973

7 files changed

Lines changed: 96 additions & 14 deletions

File tree

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
],
1010
"autoload": {
1111
"psr-4": {
12-
"GGrach\\BitrixDebugger\\": "src/BitrixDebugger"
12+
"GGrach\\BitrixDebugger\\": "src/BitrixDebugger",
13+
"GGrach\\Writer\\": "src/Writer"
1314
}
1415
},
1516
"require": {}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace GGrach\BitrixDebugger\Contract;
4+
5+
/**
6+
* Имеет режимы отображения
7+
*
8+
* @author ggrachdev
9+
*/
10+
interface ShowModableContract {
11+
12+
/**
13+
* Получить режимы отображения установленные
14+
*
15+
* @return array Режимы отображения
16+
*/
17+
public function getShowModes(): array;
18+
19+
/**
20+
* Получить допустимые режимы отображения
21+
*
22+
* @return array Режимы отображения
23+
*/
24+
public function getShowModesEnum(): array;
25+
26+
/**
27+
* Установить режимы отображения
28+
*
29+
* @param array $showModes
30+
* @return bool Результат
31+
*/
32+
public function setShowModes(array $showModes): bool;
33+
}

src/BitrixDebugger/Debugger/Debugger.php

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
<?php
22

3+
namespace GGrach\BitrixDebugger\Debugger;
4+
35
use GGrach\BitrixDebugger\Configurator\DebuggerConfigurator;
46
use GGrach\BitrixDebugger\Configurator\DebugBarConfigurator;
7+
use GGrach\BitrixDebugger\Contract\ShowModableContract;
58

6-
namespace GGrach\BitrixDebugger\Debugger;
79

810
/**
911
* Description of Debugger
1012
*
1113
* @author ggrachdev
1214
* @version 0.01
1315
*/
14-
class Debugger {
16+
class Debugger implements ShowModableContract {
1517

1618
public function __construct($debuggerConfigurator = null, $debugBarConfigurator = null) {
1719
if ($debuggerConfigurator === null) {
@@ -57,33 +59,52 @@ public function __construct($debuggerConfigurator = null, $debugBarConfigurator
5759
/**
5860
* Где показывать
5961
*
60-
* everywhere - и в дебаг-баре и в коде
62+
* everywhere - и в дебаг-баре и в коде и залогировать
6163
* code - в коде
6264
* debug_bar - в дебаг-баре
65+
* log - залогировать
6366
* no - не показывать нигде
6467
*
65-
* @var string
68+
* @var array
6669
*/
67-
private $showMode = 'everywhere';
70+
protected $showModes = ['everywhere'];
71+
72+
public function getShowModes()
73+
{
74+
return $this->showModes;
75+
}
6876

6977
public function options($options) {
7078

7179
}
7280

7381
public function notice(...$item) {
74-
self::rawNotice('notice', ...$item);
82+
$this->noticeRaw('notice', $item);
7583
}
7684

7785
public function warning(...$item) {
78-
self::rawNotice('warning', ...$item);
86+
$this->noticeRaw('warning', $item);
7987
}
8088

8189
public function success(...$item) {
82-
self::rawNotice('success', ...$item);
90+
$this->noticeRaw('success', $item);
8391
}
8492

85-
public function rawNotice(string $type, ...$item) {
86-
93+
public function noticeRaw(string $type, $items) {
94+
95+
if ($this->needShowInDebugBar()) {
96+
$this->log[] = $items;
97+
}
98+
}
99+
100+
public function getShowModesEnum(): array {
101+
// @todo
102+
return [];
103+
}
104+
105+
public function setShowModes(array $showModes): bool {
106+
// @todo
107+
return true;
87108
}
88109

89110
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace GGrach\BitrixDebugger\Validator;
4+
5+
use GGrach\BitrixDebugger\Contract\ShowModableContract;
6+
7+
/**
8+
* Description of ShowModeValidator
9+
*
10+
* @author ggrachdev
11+
*/
12+
class ShowModeValidator {
13+
14+
public static function needShowInDebugBar(ShowModableContract $debugger) {
15+
return in_array('debug_bar', $debugger->getShowModes()) || in_array('everywhere', $debugger->getShowModes());
16+
}
17+
18+
public static function needShowInCode(ShowModableContract $debugger) {
19+
return in_array('code', $debugger->getShowModes()) || in_array('everywhere', $debugger->getShowModes());
20+
}
21+
22+
public static function needWriteInLog(ShowModableContract $debugger) {
23+
return in_array('code', $debugger->getShowModes()) || in_array('everywhere', $debugger->getShowModes());
24+
}
25+
26+
}

src/Writer/.gitkeep

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

src/BitrixDebugger/Contract/WritableContract.php renamed to src/Writer/Contract/WritableContract.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace GGrach\BitrixDebugger\Contract;
3+
namespace GGrach\Writer\Contract;
44

55
/**
66
* Для записи данных
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

3-
use GGrach\BitrixDebugger\Contract\WritableContract;
3+
namespace GGrach\Writer;
44

5-
namespace GGrach\BitrixDebugger\Writer;
5+
use GGrach\Writer\Contract\WritableContract;
66

77
/**
88
* Description of FileWriter

0 commit comments

Comments
 (0)