diff --git a/src/Potter/Logger/Behaviour.php b/src/Potter/Logger/Behaviour.php index 6512e1c..1a5a155 100644 --- a/src/Potter/Logger/Behaviour.php +++ b/src/Potter/Logger/Behaviour.php @@ -18,28 +18,27 @@ trait Behaviour private static function addLoggerBehaviour(Container $container): void { + self::addLoggerEnvironment($container); self::addLoggerHandler($container); self::addLogger($container); self::addLoggerSubscription($container); } + private static function addLoggerEnvironment(Container $container): void + { + static::getEnvironment($container)->required('APPLICATION_NAME'); + } + private static function addLoggerHandler(Container $container): void { - if ($container->has(Handler::class)) { - return; } - $container->addShared(Handler::class) ->addArgument(\Potter\Console\Logger::class); } private static function addLoggerSubscription(Container $container): void { - if (!static::hasDispatcher($container)) { - return; } $dispatcher = static::getDispatcher($container); - - static::getEnvironment($container)->required('APPLICATION_NAME'); - + $dispatcher->subscribeTo('applicationStart', function (Event $event) { $container = $event->getArgument('container'); if (!self::hasLogger($container)) { @@ -67,10 +66,6 @@ trait Behaviour return [$container->get(Handler::class)]; } - abstract private static function hasDispatcher(Container $container): bool; - - abstract private static function hasEnvironment(Container $container): bool; - private static function hasLogger(Container $container): bool { return $container->has(Logger::class);