diff --git a/composer.json b/composer.json index e1ca3c7..402ecf5 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ "psr/log": "^3.0.2" }, "require-dev": { + "boundwize/structarmed": "^0.19", "laminas/laminas-coding-standard": "^3.0", "phpstan/phpstan": "^2.1", "phpstan/phpstan-phpunit": "^2.0", diff --git a/src/Logger.php b/src/Logger.php index 6e2b5fa..b47cc69 100644 --- a/src/Logger.php +++ b/src/Logger.php @@ -423,7 +423,7 @@ public static function registerErrorHandler(Logger $logger, bool $continueNative $errorLevelMap = static::$errorLevelMap; $previous = set_error_handler( - function ($level, $message, $file, $line) use ($logger, $errorLevelMap, $continueNativeHandler) { + static function ($level, $message, $file, $line) use ($logger, $errorLevelMap, $continueNativeHandler) { $iniLevel = error_reporting(); if ($iniLevel & $level) { @@ -467,7 +467,7 @@ public static function registerFatalErrorShutdownFunction(Logger $logger): bool $errorLevelMap = static::$errorLevelMap; - register_shutdown_function(function () use ($logger, $errorLevelMap) { + register_shutdown_function(static function () use ($logger, $errorLevelMap) { $error = error_get_last(); if ( @@ -517,7 +517,7 @@ public static function registerExceptionHandler(Logger $logger): bool $errorLevelMap = static::$errorLevelMap; - set_exception_handler(function ($exception) use ($logger, $errorLevelMap) { + set_exception_handler(static function ($exception) use ($logger, $errorLevelMap) { $logMessages = []; do { diff --git a/structarmed.php b/structarmed.php new file mode 100644 index 0000000..c49a222 --- /dev/null +++ b/structarmed.php @@ -0,0 +1,32 @@ +withPresets(Preset::PSR4(), Preset::CODEQUALITY()) + + ->layer('Log', [ + 'src/ConfigProvider.php', + 'src/Logger.php', + 'src/LoggerServiceFactory.php', + ]) + ->layer('Exception', 'src/Exception/') + ->layer('Factory', 'src/Factory/') + ->layer('Filter', 'src/Filter/') + ->layer('Formatter', 'src/Formatter/') + ->layer('Manager', 'src/Manager/') + ->layer('Processor', 'src/Processor/') + ->layer('Writer', 'src/Writer/') + ->ruleset([ + 'Exception' => [], + 'Processor' => [], + 'Filter' => ['Exception'], + 'Formatter' => ['Exception'], + 'Writer' => ['+Filter', '+Formatter', 'Manager'], + 'Manager' => ['+Writer', 'Processor', 'Factory'], + 'Factory' => ['+Log'], + 'Log' => ['+Manager'], + ]); diff --git a/test/LoggerTest.php b/test/LoggerTest.php index 7e9bb12..9651332 100644 --- a/test/LoggerTest.php +++ b/test/LoggerTest.php @@ -168,7 +168,7 @@ public function hello(): string }, 'placeholder4' => ['array' => 'placeholder4'], 'placeholder5' => 5.5, - 'placeholder6' => fn($arg1, $arg2) => $arg1 + $arg2, + 'placeholder6' => static fn($arg1, $arg2) => $arg1 + $arg2, ]; $writer = new Mock(); @@ -398,7 +398,7 @@ public function testExceptionHandler(): void $this->assertFalse(Logger::registerExceptionHandler($this->subject)); // get the internal exception handler - $exceptionHandler = set_exception_handler(function ($e) { + $exceptionHandler = set_exception_handler(static function ($e) { }); set_exception_handler($exceptionHandler);