Compare commits
6 Commits
6bb1d8fc8f
...
0.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| b67436c44f | |||
| 18deba3b66 | |||
| 713ba001e5 | |||
| 3872996fa7 | |||
| fecc73408a | |||
| 03a338b98e |
+8
-2
@@ -15,10 +15,16 @@
|
||||
],
|
||||
"minimum-stability": "stable",
|
||||
"require": {
|
||||
"graham-campbell/result-type": ">=1.1.4",
|
||||
"monolog/monolog": ">=3.10.0",
|
||||
"phpoption/phpoption": ">=1.9.5",
|
||||
"potter/console": ">=0.0.1",
|
||||
"potter/container": ">=0.0.1",
|
||||
"potter/event": ">=0.0.3",
|
||||
"psr/log": ">=3.0.2"
|
||||
"potter/event": ">=0.0.1",
|
||||
"psr/log": ">=3.0.2",
|
||||
"symfony/polyfill-ctype": ">=1.37.0",
|
||||
"symfony/polyfill-mbstring": ">=1.38.2",
|
||||
"symfony/polyfill-php80": ">=1.37.0",
|
||||
"vlucas/phpdotenv": ">=5.6.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,6 @@ use \Potter\Event\Event;
|
||||
|
||||
trait Behaviour
|
||||
{
|
||||
abstract private static function addConsoleBehaviour(Container $container): void;
|
||||
|
||||
private static function addLogger(Container $container): void
|
||||
{
|
||||
$container->addShared(Logger::class)
|
||||
@@ -20,52 +18,40 @@ trait Behaviour
|
||||
|
||||
private static function addLoggerBehaviour(Container $container): void
|
||||
{
|
||||
if (static::hasDispatcher($container)) {
|
||||
static::getDispatcher($container)
|
||||
->subscribeTo('applicationStart', function (Event $event) {
|
||||
self::_addLoggerBehaviour($event->getArgument('container')); });
|
||||
} else {
|
||||
self::_addLoggerBehaviour($container);
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
$dispatcher->subscribeTo('applicationStart', function (Event $event) {
|
||||
$container = $event->getArgument('container');
|
||||
if (!self::hasLogger($container)) {
|
||||
return; }
|
||||
self::getLogger($container)->notice('Application start.'); });
|
||||
self::getLogger($container)->notice('Application start: ' . $_ENV['APPLICATION_NAME']); });
|
||||
|
||||
$dispatcher->subscribeTo('applicationStop', function (Event $event) {
|
||||
$container = $event->getArgument('container');
|
||||
if (!self::hasLogger($container)) {
|
||||
return; }
|
||||
self::getLogger($container)->notice('Application stop.'); });
|
||||
self::getLogger($container)->notice('Application stop: ' . $_ENV['APPLICATION_NAME']); });
|
||||
}
|
||||
|
||||
abstract private static function getDispatcher(Container $container): \Potter\Event\Dispatcher;
|
||||
|
||||
abstract private static function getEnvironment(Container $container): \Dotenv\Dotenv;
|
||||
|
||||
private static function getLogger(Container $container): Logger
|
||||
{
|
||||
return $container->get(Logger::class);
|
||||
@@ -75,11 +61,4 @@ trait Behaviour
|
||||
{
|
||||
return [$container->get(Handler::class)];
|
||||
}
|
||||
|
||||
abstract private static function hasDispatcher(Container $container): bool;
|
||||
|
||||
private static function hasLogger(Container $container): bool
|
||||
{
|
||||
return $container->has(Logger::class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user