Skip to content

Commit fdd0190

Browse files
committed
refactor: Remove unnecessary createLogger function
1 parent d598982 commit fdd0190

File tree

11 files changed

+52
-60
lines changed

11 files changed

+52
-60
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,10 @@ Setting `debug` level will print out all logs, including `info`, `warning`, and
364364

365365
```php
366366
use Featurevisor\Featurevisor;
367-
use function Featurevisor\createLogger;
367+
use Featurevisor\Logger;
368368

369369
$f = Featurevisor::createInstance([
370-
"logger" => createLogger([
370+
"logger" => Logger::create([
371371
"level" => "debug",
372372
]),
373373
]);
@@ -393,10 +393,10 @@ You can also pass your own log handler, if you do not wish to print the logs to
393393

394394
```php
395395
use Featurevisor\Featurevisor;
396-
use function Featurevisor\createLogger;
396+
use Featurevisor\Logger;
397397

398398
$f = Featurevisor::createInstance([
399-
"logger" => createLogger([
399+
"logger" => Logger::create([
400400
"level" => "info",
401401
"handler" => function ($level, $message, $details) {
402402
// do something with the log

composer.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@
2727
"autoload": {
2828
"psr-4": {
2929
"Featurevisor\\": "src/"
30-
},
31-
"files": [
32-
"src/functions.php"
33-
]
30+
}
3431
},
3532
"autoload-dev": {
3633
"psr-4": {

featurevisor

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ require __DIR__ . '/vendor/autoload.php';
55

66
use Featurevisor\DatafileReader;
77
use Featurevisor\Featurevisor;
8+
use Featurevisor\Logger;
89
use Psr\Log\LogLevel;
9-
use function Featurevisor\createLogger;
1010

1111
/**
1212
* CLI Options
@@ -257,7 +257,7 @@ function testSegment(array $assertion, array $segment, string $level): array {
257257

258258
$datafileReader = DatafileReader::createFromOptions([
259259
'datafile' => $datafile,
260-
'logger' => createLogger([
260+
'logger' => Logger::create([
261261
'level' => $level,
262262
]),
263263
]);
@@ -306,7 +306,7 @@ function test(array $cliOptions) {
306306
$datafile = $datafilesByEnvironment[$environment];
307307
$sdkInstancesByEnvironment[$environment] = Featurevisor::createInstance([
308308
'datafile' => $datafile,
309-
'logger' => createLogger([
309+
'logger' => Logger::create([
310310
'level' => $level,
311311
]),
312312
'hooks' => [
@@ -345,7 +345,7 @@ function test(array $cliOptions) {
345345
$datafile = $datafilesByEnvironment[$environment];
346346
$f = Featurevisor::createInstance([
347347
'datafile' => $datafile,
348-
'logger' => createLogger([
348+
'logger' => Logger::create([
349349
'level' => $level,
350350
]),
351351
'hooks' => [
@@ -422,7 +422,7 @@ function benchmark(array $cliOptions) {
422422

423423
$f = Featurevisor::createInstance([
424424
'datafile' => $datafilesByEnvironment[$cliOptions['environment']],
425-
'logger' => createLogger([
425+
'logger' => Logger::create([
426426
'level' => $level,
427427
]),
428428
]);
@@ -483,7 +483,7 @@ function assessDistribution(array $cliOptions) {
483483

484484
$f = Featurevisor::createInstance([
485485
'datafile' => $datafilesByEnvironment[$cliOptions['environment']],
486-
'logger' => createLogger([
486+
'logger' => Logger::create([
487487
'level' => $level,
488488
]),
489489
]);

src/Logger.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,18 @@ class Logger implements LoggerInterface
3636
* handler?: Closure,
3737
* } $options
3838
*/
39-
public function __construct(array $options = [])
39+
public static function create(array $options = []): self
4040
{
41-
$this->level = $options['level'] ?? self::DEFAULT_LEVEL;
42-
$this->handler = $options['handler'] ?? static fn ($level, $message, array $context) => self::defaultLogHandler($level, $message, $context);
41+
return new self(
42+
$options['level'] ?? self::DEFAULT_LEVEL,
43+
$options['handler'] ?? null
44+
);
45+
}
46+
47+
public function __construct(string $level = self::DEFAULT_LEVEL, Closure $handler = null)
48+
{
49+
$this->handler = $handler ?? static fn ($level, $message, array $context) => self::defaultLogHandler($level, $message, $context);
50+
$this->level = $level;
4351
}
4452

4553
public function setLevel(string $level): void
@@ -62,7 +70,7 @@ public function log($level, $message, array $context = []): void
6270
($this->handler)($level, self::MSG_PREFIX.' '.$message, $context);
6371
}
6472

65-
public static function defaultLogHandler($level, $message, ?array $details = null): void
73+
private static function defaultLogHandler($level, $message, ?array $details = null): void
6674
{
6775
if (STDOUT === false) {
6876
return;

src/functions.php

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/BucketerTest.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
namespace Featurevisor\Tests;
44

5+
use Featurevisor\Logger;
56
use PHPUnit\Framework\TestCase;
6-
77
use Featurevisor\Bucketer;
88
use Psr\Log\LogLevel;
9-
use function Featurevisor\createLogger;
109

1110
class BucketerTest extends TestCase {
1211

@@ -43,7 +42,7 @@ public function testGetBucketKeyPlain() {
4342
$featureKey = 'test-feature';
4443
$bucketBy = 'userId';
4544
$context = ['userId' => '123', 'browser' => 'chrome'];
46-
$logger = createLogger(['level' => LogLevel::WARNING]);
45+
$logger = Logger::create(['level' => LogLevel::WARNING]);
4746
$bucketKey = Bucketer::getBucketKey([
4847
'featureKey' => $featureKey,
4948
'bucketBy' => $bucketBy,
@@ -57,7 +56,7 @@ public function testGetBucketKeyPlainMissingContext() {
5756
$featureKey = 'test-feature';
5857
$bucketBy = 'userId';
5958
$context = ['browser' => 'chrome'];
60-
$logger = createLogger(['level' => LogLevel::WARNING]);
59+
$logger = Logger::create(['level' => LogLevel::WARNING]);
6160
$bucketKey = Bucketer::getBucketKey([
6261
'featureKey' => $featureKey,
6362
'bucketBy' => $bucketBy,
@@ -71,7 +70,7 @@ public function testGetBucketKeyAndAllPresent() {
7170
$featureKey = 'test-feature';
7271
$bucketBy = ['organizationId', 'userId'];
7372
$context = ['organizationId' => '123', 'userId' => '234', 'browser' => 'chrome'];
74-
$logger = createLogger(['level' => LogLevel::WARNING]);
73+
$logger = Logger::create(['level' => LogLevel::WARNING]);
7574
$bucketKey = Bucketer::getBucketKey([
7675
'featureKey' => $featureKey,
7776
'bucketBy' => $bucketBy,
@@ -85,7 +84,7 @@ public function testGetBucketKeyAndPartial() {
8584
$featureKey = 'test-feature';
8685
$bucketBy = ['organizationId', 'userId'];
8786
$context = ['organizationId' => '123', 'browser' => 'chrome'];
88-
$logger = createLogger(['level' => LogLevel::WARNING]);
87+
$logger = Logger::create(['level' => LogLevel::WARNING]);
8988
$bucketKey = Bucketer::getBucketKey([
9089
'featureKey' => $featureKey,
9190
'bucketBy' => $bucketBy,
@@ -103,7 +102,7 @@ public function testGetBucketKeyAndDotSeparated() {
103102
'user' => ['id' => '234'],
104103
'browser' => 'chrome',
105104
];
106-
$logger = createLogger(['level' => LogLevel::WARNING]);
105+
$logger = Logger::create(['level' => LogLevel::WARNING]);
107106
$bucketKey = Bucketer::getBucketKey([
108107
'featureKey' => $featureKey,
109108
'bucketBy' => $bucketBy,
@@ -121,7 +120,7 @@ public function testGetBucketKeyOrFirstAvailable() {
121120
$featureKey = 'test-feature';
122121
$bucketBy = ['or' => ['userId', 'deviceId']];
123122
$context = ['deviceId' => 'deviceIdHere', 'userId' => '234', 'browser' => 'chrome'];
124-
$logger = createLogger(['level' => LogLevel::WARNING]);
123+
$logger = Logger::create(['level' => LogLevel::WARNING]);
125124
$bucketKey = Bucketer::getBucketKey([
126125
'featureKey' => $featureKey,
127126
'bucketBy' => $bucketBy,
@@ -135,7 +134,7 @@ public function testGetBucketKeyOrOnlyDeviceId() {
135134
$featureKey = 'test-feature';
136135
$bucketBy = ['or' => ['userId', 'deviceId']];
137136
$context = ['deviceId' => 'deviceIdHere', 'browser' => 'chrome'];
138-
$logger = createLogger(['level' => LogLevel::WARNING]);
137+
$logger = Logger::create(['level' => LogLevel::WARNING]);
139138
$bucketKey = Bucketer::getBucketKey([
140139
'featureKey' => $featureKey,
141140
'bucketBy' => $bucketBy,

tests/ConditionsTest.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33
namespace Featurevisor\Tests;
44

55
use DateTime;
6+
use Featurevisor\Logger;
67
use PHPUnit\Framework\TestCase;
7-
88
use Featurevisor\DatafileReader;
9-
use function Featurevisor\createLogger;
109

1110
class ConditionsTest extends TestCase {
12-
private $datafileReader;
11+
private DatafileReader $datafileReader;
1312

1413
protected function setUp(): void {
15-
$logger = createLogger();
16-
$this->datafileReader = DatafileReader::createEmpty($logger);
14+
$this->datafileReader = DatafileReader::createEmpty(Logger::create());
1715
}
1816

1917
public function testMatchAllViaStar() {

tests/DatafileReaderTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
namespace Featurevisor\Tests;
44

5+
use Featurevisor\Logger;
56
use PHPUnit\Framework\TestCase;
6-
77
use Featurevisor\DatafileReader;
8-
use function Featurevisor\createLogger;
98

109
class DatafileReaderTest extends TestCase {
1110

@@ -49,7 +48,7 @@ public function testV2DatafileSchemaEntities() {
4948
],
5049
],
5150
];
52-
$logger = createLogger();
51+
$logger = Logger::create();
5352
$reader = DatafileReader::createFromOptions([
5453
'datafile' => $datafileJson,
5554
'logger' => $logger,
@@ -112,7 +111,7 @@ public function testSegmentsMatching() {
112111
],
113112
],
114113
];
115-
$logger = createLogger();
114+
$logger = Logger::create();
116115
$datafileReader = DatafileReader::createFromOptions([
117116
'datafile' => $datafileContent,
118117
'logger' => $logger,

tests/EventsTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
namespace Featurevisor\Tests;
44

5+
use Featurevisor\Logger;
56
use PHPUnit\Framework\TestCase;
67

78
use Featurevisor\Events;
89
use Featurevisor\DatafileReader;
9-
use function Featurevisor\createLogger;
1010

1111
class EventsTest extends TestCase
1212
{
@@ -49,7 +49,7 @@ public function testGetParamsForStickySetEventAddChangeRemove()
4949

5050
public function testGetParamsForDatafileSetEventEmptyToNew()
5151
{
52-
$logger = createLogger([
52+
$logger = Logger::create([
5353
'level' => 'error',
5454
]);
5555

@@ -88,7 +88,7 @@ public function testGetParamsForDatafileSetEventEmptyToNew()
8888

8989
public function testGetParamsForDatafileSetEventChangeHashAddition()
9090
{
91-
$logger = createLogger([
91+
$logger = Logger::create([
9292
'level' => 'error',
9393
]);
9494

@@ -131,7 +131,7 @@ public function testGetParamsForDatafileSetEventChangeHashAddition()
131131

132132
public function testGetParamsForDatafileSetEventChangeHashRemoval()
133133
{
134-
$logger = createLogger([
134+
$logger = Logger::create([
135135
'level' => 'error',
136136
]);
137137

tests/FeaturevisorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace Featurevisor\Tests;
44

55
use Featurevisor\Featurevisor;
6+
use Featurevisor\Logger;
67
use PHPUnit\Framework\TestCase;
78
use Psr\Log\LogLevel;
8-
use function Featurevisor\createLogger;
99

1010
class FeaturevisorTest extends TestCase
1111
{
@@ -562,7 +562,7 @@ public function testShouldEmitWarningsForDeprecatedFeature()
562562
],
563563
'segments' => [],
564564
],
565-
'logger' => createLogger([
565+
'logger' => Logger::create([
566566
'handler' => function($level, $message) use (&$deprecatedCount) {
567567
if ($level === LogLevel::WARNING && strpos($message, 'is deprecated') !== false) {
568568
$deprecatedCount += 1;

0 commit comments

Comments
 (0)