From 50b84a2f92d9b54f6585330b94772e4aab0f1ff3 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 6 Mar 2025 07:22:17 +0100 Subject: [PATCH 1/4] add platform_version and module_version arguments --- src/Debug/Logger.php | 15 ++++++++++++--- tests/Debug/LoggerTest.phpt | 22 ++++++++++------------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/Debug/Logger.php b/src/Debug/Logger.php index 32319dd..1cc585f 100644 --- a/src/Debug/Logger.php +++ b/src/Debug/Logger.php @@ -13,22 +13,31 @@ class Logger { use Strict; + private string $platform_version; + + private string $module_version; + private Repository\Logger $repository; - public function __construct(Repository\Logger $repository) + public function __construct(string $platform_version, string $module_version, Repository\Logger $repository) { $this->repository = $repository; + $this->platform_version = $platform_version; + $this->module_version = $module_version; } public function log(string $message, string $level = 'error'): void { - $this->repository->log($message, time(), $level); + $this->repository->log($message, time(), $level, [ + 'platform_version' => $this->platform_version, + 'module_version' => $this->module_version, + ]); } /** - * @return list + * @return list}>> */ public function getList(string $level = 'error'): array { diff --git a/tests/Debug/LoggerTest.phpt b/tests/Debug/LoggerTest.phpt index 63fa045..516059f 100644 --- a/tests/Debug/LoggerTest.phpt +++ b/tests/Debug/LoggerTest.phpt @@ -20,9 +20,9 @@ class LoggerTest extends TestCase { public function testLog(): void { - $logger = new Logger($repository = Mockery::mock(Repository::class)); + $logger = new Logger('6.3.0', '1.0.0', $repository = Mockery::mock(Repository::class)); - $repository->shouldReceive('log')->with('test', Mockery::type('int'), 'level')->once(); + $repository->shouldReceive('log')->with('test', Mockery::type('int'), 'level', ['platform_version' => '6.3.0', 'module_version' => '1.0.0'])->once(); $logger->log('test', 'level'); @@ -32,16 +32,14 @@ class LoggerTest extends TestCase public function testGetList(): void { - $logger = new Logger($repository = Mockery::mock(Repository::class)); - $repository->shouldReceive('getList')->with('level')->once()->andReturn([ - ['message' => 'test1', 'created' => 5], - ['message' => 'test2', 'created' => 6] - ]); - - Assert::same([ - ['message' => 'test1', 'created' => 5], - ['message' => 'test2', 'created' => 6] - ], $logger->getList('level')); + $logger = new Logger('6.3.0', '1.0.0', $repository = Mockery::mock(Repository::class)); + $repository->shouldReceive('getList')->with('error')->once()->ordered(); + $repository->shouldReceive('getList')->with('level')->once()->ordered(); + + $logger->getList(); + $logger->getList('level'); + + Assert::true(true); } From 83ae4b8746e1040c4351df156aea106efa410019 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 6 Mar 2025 07:31:54 +0100 Subject: [PATCH 2/4] add parameters to repository --- src/Debug/Repository/Logger.php | 7 ++++-- src/Debug/Repository/LoggerSettings.php | 4 +++- .../Debug/Repository/LoggerSettingsTest.phpt | 24 +++++++++---------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/Debug/Repository/Logger.php b/src/Debug/Repository/Logger.php index b3fe6f2..3b4ec7e 100644 --- a/src/Debug/Repository/Logger.php +++ b/src/Debug/Repository/Logger.php @@ -9,11 +9,14 @@ interface Logger { - public function log(string $message, int $created, string $level = 'error'): void; + /** + * @param array $parameters + */ + public function log(string $message, int $created, string $level = 'error', array $parameters = []): void; /** - * @return list + * @return list}>> */ public function getList(string $level = 'error'): array; } diff --git a/src/Debug/Repository/LoggerSettings.php b/src/Debug/Repository/LoggerSettings.php index 7f62e0f..61cef6e 100644 --- a/src/Debug/Repository/LoggerSettings.php +++ b/src/Debug/Repository/LoggerSettings.php @@ -32,7 +32,7 @@ public function setup(?int $limit = null): void } - public function log(string $message, int $created, string $level = 'error'): void + public function log(string $message, int $created, string $level = 'error', array $parameters = []): void { $list = $this->settings->load(self::Key . $level); @@ -44,6 +44,7 @@ public function log(string $message, int $created, string $level = 'error'): voi $list[] = [ 'message' => $message, 'created' => $created, + 'parameters' => $parameters, ]; $this->settings->set(self::Key . $level, count($list) > $this->limit ? array_slice($list, 1, $this->limit) : $list, ['type' => 'array']); @@ -61,6 +62,7 @@ public function getList(string $level = 'error'): array $output[] = [ 'message' => isset($item['message']) && is_scalar($item['message']) ? (string) $item['message'] : '', 'created' => isset($item['created']) && is_scalar($item['created']) ? (int) $item['created'] : 0, + 'parameters' => isset($item['parameters']) && is_array($item['parameters']) ? $item['parameters'] : [], ]; } diff --git a/tests/Debug/Repository/LoggerSettingsTest.phpt b/tests/Debug/Repository/LoggerSettingsTest.phpt index 116bcb6..fb34443 100644 --- a/tests/Debug/Repository/LoggerSettingsTest.phpt +++ b/tests/Debug/Repository/LoggerSettingsTest.phpt @@ -28,7 +28,7 @@ class LoggerSettingsTest extends TestCase $settings->shouldReceive('set')->with('static:log_level', [ ['message' => 'test1', 'created' => 5], ['message' => 'test2', 'created' => 6], - ['message' => 'test3', 'created' => 7] + ['message' => 'test3', 'created' => 7, 'parameters' => []] ], ['type' => 'array'])->once(); $repository->log('test3', 7, 'level'); @@ -49,7 +49,7 @@ class LoggerSettingsTest extends TestCase $settings->shouldReceive('set')->with('static:log_level', [ ['message' => 'test2', 'created' => 6], ['message' => 'test3', 'created' => 7], - ['message' => 'test4', 'created' => 8] + ['message' => 'test4', 'created' => 8, 'parameters' => []] ], ['type' => 'array'])->once(); $repository->log('test4', 8, 'level'); @@ -64,7 +64,7 @@ class LoggerSettingsTest extends TestCase $repository->setup(3); $settings->shouldReceive('load')->with('static:log_level')->once()->andReturnNull(); $settings->shouldReceive('set')->with('static:log_level', [ - ['message' => 'test4', 'created' => 8] + ['message' => 'test4', 'created' => 8, 'parameters' => []] ], ['type' => 'array'])->once(); $repository->log('test4', 8, 'level'); @@ -77,21 +77,21 @@ class LoggerSettingsTest extends TestCase { $repository = new LoggerSettings($settings = Mockery::mock(Settings::class)); $settings->shouldReceive('load')->with('static:log_level')->once()->andReturn([ - ['message' => 'test1', 'created' => 5], - ['message' => 'test2', 'created' => 6], - ['message' => 'test3', 'created' => 7], + ['message' => 'test1', 'created' => 5, 'parameters' => ['test1' => 'test1']], + ['message' => 'test2', 'created' => 6, 'parameters' => ['test2' => 'test2']], + ['message' => 'test3', 'created' => 7, 'parameters' => ['test3' => 'test3']], [], ['message' => []], ['created' => []] ]); Assert::same([ - ['message' => 'test1', 'created' => 5], - ['message' => 'test2', 'created' => 6], - ['message' => 'test3', 'created' => 7], - ['message' => '', 'created' => 0], - ['message' => '', 'created' => 0], - ['message' => '', 'created' => 0], + ['message' => 'test1', 'created' => 5, 'parameters' => ['test1' => 'test1']], + ['message' => 'test2', 'created' => 6, 'parameters' => ['test2' => 'test2']], + ['message' => 'test3', 'created' => 7, 'parameters' => ['test3' => 'test3']], + ['message' => '', 'created' => 0, 'parameters' => []], + ['message' => '', 'created' => 0, 'parameters' => []], + ['message' => '', 'created' => 0, 'parameters' => []], ], $repository->getList('level')); } From 4672ea1e10fd7808ed14d8b0cc6a3d371a7cdf18 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 6 Mar 2025 14:06:21 +0100 Subject: [PATCH 3/4] version getters --- src/Debug/Logger.php | 10 ++++++++++ tests/Debug/LoggerTest.phpt | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Debug/Logger.php b/src/Debug/Logger.php index 1cc585f..c8e5d35 100644 --- a/src/Debug/Logger.php +++ b/src/Debug/Logger.php @@ -35,6 +35,16 @@ public function log(string $message, string $level = 'error'): void ]); } + public function getPlatformVersion(): string + { + return $this->platform_version; + } + + public function getModuleVersion(): string + { + return $this->module_version; + } + /** * @return list}>> diff --git a/tests/Debug/LoggerTest.phpt b/tests/Debug/LoggerTest.phpt index 516059f..f23782d 100644 --- a/tests/Debug/LoggerTest.phpt +++ b/tests/Debug/LoggerTest.phpt @@ -42,6 +42,14 @@ class LoggerTest extends TestCase Assert::true(true); } + public function testVersions(): void + { + $logger = new Logger('6.3.0', '1.0.0', Mockery::mock(Repository::class)); + + Assert::same('6.3.0', $logger->getPlatformVersion()); + Assert::same('1.0.0', $logger->getModuleVersion()); + } + public function tearDown(): void { From 200cd2ef36827de9fbe90eff275bb8c8a82f255c Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 6 Mar 2025 14:49:17 +0100 Subject: [PATCH 4/4] version public properties --- src/Debug/Logger.php | 14 ++------------ tests/Debug/LoggerTest.phpt | 4 ++-- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/Debug/Logger.php b/src/Debug/Logger.php index c8e5d35..051b967 100644 --- a/src/Debug/Logger.php +++ b/src/Debug/Logger.php @@ -13,9 +13,9 @@ class Logger { use Strict; - private string $platform_version; + public /*readonly*/ string $platform_version; - private string $module_version; + public /*readonly*/ string $module_version; private Repository\Logger $repository; @@ -35,16 +35,6 @@ public function log(string $message, string $level = 'error'): void ]); } - public function getPlatformVersion(): string - { - return $this->platform_version; - } - - public function getModuleVersion(): string - { - return $this->module_version; - } - /** * @return list}>> diff --git a/tests/Debug/LoggerTest.phpt b/tests/Debug/LoggerTest.phpt index f23782d..b33b726 100644 --- a/tests/Debug/LoggerTest.phpt +++ b/tests/Debug/LoggerTest.phpt @@ -46,8 +46,8 @@ class LoggerTest extends TestCase { $logger = new Logger('6.3.0', '1.0.0', Mockery::mock(Repository::class)); - Assert::same('6.3.0', $logger->getPlatformVersion()); - Assert::same('1.0.0', $logger->getModuleVersion()); + Assert::same('6.3.0', $logger->platform_version); + Assert::same('1.0.0', $logger->module_version); }