Skip to content

Commit b19fb9d

Browse files
committed
added adapters for psr
1 parent 8b4eef3 commit b19fb9d

11 files changed

Lines changed: 175 additions & 19 deletions

File tree

composer.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,13 @@
2525
"php": ">=7.3",
2626
"psr/log": "1 - 3",
2727
"predis/predis": "^2.0",
28-
"symfony/yaml": "5.3 - 6"
28+
"symfony/yaml": "^5.3|^6.0"
2929
},
3030

3131
"require-dev": {
3232
"phpunit/phpunit": "^9.0.0",
3333
"squizlabs/php_codesniffer": "3.*",
34-
"rogervila/php-sonarqube-scanner": "1.1.0",
35-
"monolog/monolog": "2.8 - 3"
34+
"rogervila/php-sonarqube-scanner": "1.1.0"
3635
},
3736

3837
"autoload": {

src/SplitIO/Component/Common/Di.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public static function get($key)
118118
/**
119119
* @param LoggerInterface $logger
120120
*/
121-
public static function setLogger(LoggerInterface $logger)
121+
public static function setLogger($logger)
122122
{
123123
self::set(self::KEY_LOG, $logger);
124124
}

src/SplitIO/Component/Common/ServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class ServiceProvider
55
{
6-
public static function registerLogger(\Psr\Log\LoggerInterface $logger)
6+
public static function registerLogger($logger)
77
{
88
Di::setLogger($logger);
99
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
namespace SplitIO\Component\Initialization;
3+
4+
use SplitIO\Component\Log\Logger;
5+
use SplitIO\Component\Log\LoggerAdapterPSR3v3;
6+
use SplitIO\Component\Log\LoggerAdapterPSR3v2;
7+
use SplitIO\Component\Log\LoggerAdapterPSR3v1;
8+
9+
class LoggerFactory
10+
{
11+
public static function setupLogger(array $options) {
12+
if (!isset($options['psr3-instance'])) {
13+
$adapter = (isset($options['adapter'])) ? $options['adapter'] : null;
14+
$level = (isset($options['level'])) ? $options['level'] : null;
15+
16+
LoggerTrait::addLogger($adapter, $level);
17+
return;
18+
}
19+
20+
$standard = 'psr3-v3';
21+
if (isset($options['standard'])) {
22+
$standard = $options['standard'];
23+
}
24+
25+
switch ($standard) {
26+
case 'psr3-v3':
27+
LoggerTrait::addLogger(null, null, new Logger(new LoggerAdapterPSR3v3($options['psr3-instance'])));
28+
break;
29+
case 'psr3-v2':
30+
LoggerTrait::addLogger(null, null, new Logger(new LoggerAdapterPSR3v2($options['psr3-instance'])));
31+
break;
32+
case 'psr3-v1':
33+
LoggerTrait::addLogger(null, null, new Logger(new LoggerAdapterPSR3v1($options['psr3-instance'])));
34+
break;
35+
default:
36+
$adapter = (isset($options['adapter'])) ? $options['adapter'] : null;
37+
$level = (isset($options['level'])) ? $options['level'] : null;
38+
39+
LoggerTrait::addLogger($adapter, $level);
40+
}
41+
}
42+
}

src/SplitIO/Component/Initialization/LoggerTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
class LoggerTrait
1515
{
16-
public static function addLogger($adapter, $level, LoggerInterface $custom = null)
16+
public static function addLogger($adapter, $level, $custom = null)
1717
{
1818
$logger = null;
1919

src/SplitIO/Component/Log/Logger.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* Implement PSR-3 interface
1212
* @package SplitIO\Component\Log
1313
*/
14-
class Logger extends LoggerTrait implements LoggerInterface
14+
class Logger extends LoggerTrait
1515
{
1616
/**
1717
* @var null|LogHandlerInterface
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
namespace SplitIO\Component\Log;
3+
4+
use Psr\Log\LoggerInterface;
5+
use SplitIO\Component\Log\Handler\LogHandlerInterface;
6+
7+
/**
8+
* Class LoggerAdapterPSR3v1
9+
* Logger Handler for PSR3 v1
10+
* @package namespace SplitIO\Component\Log;
11+
*/
12+
class LoggerAdapterPSR3v1 implements LogHandlerInterface
13+
{
14+
/**
15+
* @var LogHandlerInterface
16+
*/
17+
protected $logger;
18+
19+
/**
20+
* Logger constructor
21+
* @param LoggerInterface $logger
22+
*/
23+
public function __construct(LoggerInterface $logger)
24+
{
25+
$this->logger = $logger;
26+
}
27+
28+
/**
29+
* Log messages for PSR3
30+
* @param $logLevel
31+
* @param $message
32+
*/
33+
public function write($logLevel, $message)
34+
{
35+
$this->logger->log($logLevel, $message);
36+
}
37+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
namespace SplitIO\Component\Log;
3+
4+
use Psr\Log\LoggerInterface;
5+
use SplitIO\Component\Log\Handler\LogHandlerInterface;
6+
7+
/**
8+
* Class LoggerAdapterPSR3v2
9+
* Logger Handler for PSR3 v2
10+
* @package namespace SplitIO\Component\Log;
11+
*/
12+
class LoggerAdapterPSR3v2 implements LogHandlerInterface
13+
{
14+
/**
15+
* @var LogHandlerInterface
16+
*/
17+
protected $logger;
18+
19+
/**
20+
* Logger constructor
21+
* @param LoggerInterface $logger
22+
*/
23+
public function __construct(LoggerInterface $logger)
24+
{
25+
$this->logger = $logger;
26+
}
27+
28+
/**
29+
* Log messages for PSR3
30+
* @param $logLevel
31+
* @param $message
32+
*/
33+
public function write($logLevel, $message)
34+
{
35+
try {
36+
if (!is_string($message) || !$message instanceof Stringable) {
37+
$message = json_encode($message);
38+
}
39+
$this->logger->write($logLevel, $message);
40+
} catch (\Exception $e) {
41+
}
42+
}
43+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
namespace SplitIO\Component\Log;
3+
4+
use Psr\Log\LoggerInterface;
5+
use SplitIO\Component\Log\Handler\LogHandlerInterface;
6+
7+
/**
8+
* Class LoggerAdapterPSR3v3
9+
* Logger Handler for PSR3v3
10+
* @package namespace SplitIO\Component\Log;
11+
*/
12+
class LoggerAdapterPSR3v3 implements LogHandlerInterface
13+
{
14+
/**
15+
* @var LogHandlerInterface
16+
*/
17+
protected $logger;
18+
19+
/**
20+
* Logger constructor
21+
* @param LoggerAdapterPSR2 $logger
22+
*/
23+
public function __construct(LoggerInterface $logger)
24+
{
25+
$this->logger = $logger;
26+
}
27+
28+
/**
29+
* Log messages for PSR3v3
30+
* @param $logLevel
31+
* @param $message
32+
*/
33+
public function write($logLevel, $message)
34+
{
35+
try {
36+
if (!is_string($message) || !$message instanceof Stringable) {
37+
$message = json_encode($message);
38+
}
39+
$this->logger->write($logLevel, $message);
40+
} catch (\Exception $e) {
41+
}
42+
}
43+
}

src/SplitIO/Sdk.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
namespace SplitIO;
33

44
use SplitIO\Component\Initialization\CacheTrait;
5-
use SplitIO\Component\Initialization\LoggerTrait;
5+
use SplitIO\Component\Initialization\LoggerFactory;
66
use SplitIO\Exception\Exception;
77
use SplitIO\Sdk\Factory\LocalhostSplitFactory;
88
use SplitIO\Sdk\Factory\SplitFactory;
@@ -61,14 +61,7 @@ public static function factory($apiKey = 'localhost', array $options = array())
6161
*/
6262
private static function registerLogger(array $options)
6363
{
64-
if (isset($options['psr3-instance'])) {
65-
LoggerTrait::addLogger(null, null, $options['psr3-instance']);
66-
} else {
67-
$adapter = (isset($options['adapter'])) ? $options['adapter'] : null;
68-
$level = (isset($options['level'])) ? $options['level'] : null;
69-
70-
LoggerTrait::addLogger($adapter, $level);
71-
}
64+
LoggerFactory::setupLogger($options);
7265
}
7366

7467
private static function registerCache(array $options)

0 commit comments

Comments
 (0)