Skip to content

Commit 51ba57b

Browse files
committed
feat: Allow Symfony 7.*, use psr/log:^3.0 with newer Monolog
1 parent ad57d90 commit 51ba57b

File tree

7 files changed

+61
-50
lines changed

7 files changed

+61
-50
lines changed

.github/workflows/push.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ jobs:
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
phpVersion: [8.1, 8.2, 8.3]
19-
symfonyVersion: ["5.4.*", "6.1.*"]
18+
phpVersion: [8.1, 8.2, 8.3, 8.4]
19+
symfonyVersion: ["5.4.*", "6.4.*", "7.2.*"]
20+
exclude:
21+
- phpVersion: 8.1
22+
symfonyVersion: 7.2.*
2023

2124
steps:
2225
-

composer.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,19 @@
2929
"php": ">=8.1",
3030
"ext-json": "*",
3131
"keboola/common-exceptions": "^1.2",
32-
"monolog/monolog": "^2.3",
33-
"symfony/config": "^5.4|^6.0",
34-
"symfony/filesystem": "^5.4|^6.0",
35-
"symfony/finder": "^5.4|^6.0",
36-
"symfony/property-access": "^5.4|^6.0",
37-
"symfony/serializer": "^5.4|^6.0"
32+
"monolog/monolog": "^3.0",
33+
"symfony/config": "^5.4|^6.0|^7.0",
34+
"symfony/filesystem": "^5.4|^6.0|^7.0",
35+
"symfony/finder": "^5.4|^6.0|^7.0",
36+
"symfony/property-access": "^5.4|^6.0|^7.0",
37+
"symfony/serializer": "^5.4|^6.0|^7.0"
3838
},
3939
"require-dev": {
40-
"devedge/sami-github": "^1.0",
41-
"keboola/coding-standard": "^15.0",
42-
"keboola/php-temp": "^2.0",
43-
"phpstan/phpstan": "^1.4",
44-
"phpunit/phpunit": "^9.5"
40+
"devedge/sami-github": "^1.0.6",
41+
"keboola/coding-standard": "^15.0.1",
42+
"keboola/php-temp": "^2.0.1",
43+
"phpstan/phpstan": "^1.12.24",
44+
"phpunit/phpunit": "^9.6.22"
4545
},
4646
"scripts": {
4747
"tests": "phpunit",

phpstan.neon

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
parameters:
22
ignoreErrors:
3-
-
4-
identifier: missingType.iterableValue
3+
- identifier: missingType.iterableValue
54
- '#Argument of an invalid type array\|object supplied for foreach, only iterables are supported.#'
5+
- message: '#Class Keboola\\Component\\Logger extends @final class Monolog\\Logger.#'
6+
reportUnmatched: false

src/Logger.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Keboola\Component\Config\BaseConfig;
88
use Monolog\Formatter\LineFormatter;
99
use Monolog\Handler\StreamHandler;
10+
use Monolog\Level;
1011
use Monolog\Logger as MonologLogger;
1112

1213
class Logger extends MonologLogger implements Logger\SyncActionLogging, Logger\AsyncActionLogging
@@ -15,7 +16,7 @@ public static function getDefaultErrorHandler(): StreamHandler
1516
{
1617
$errorHandler = new StreamHandler('php://stderr');
1718
$errorHandler->setBubble(false);
18-
$errorHandler->setLevel(MonologLogger::WARNING);
19+
$errorHandler->setLevel(Level::Warning);
1920
$errorHandler->setFormatter(new LineFormatter("%message%\n"));
2021
return $errorHandler;
2122
}
@@ -24,7 +25,7 @@ public static function getDefaultLogHandler(): StreamHandler
2425
{
2526
$logHandler = new StreamHandler('php://stdout');
2627
$logHandler->setBubble(false);
27-
$logHandler->setLevel(MonologLogger::INFO);
28+
$logHandler->setLevel(Level::Info);
2829
$logHandler->setFormatter(new LineFormatter("%message%\n"));
2930
return $logHandler;
3031
}
@@ -33,7 +34,7 @@ public static function getDefaultCriticalHandler(): StreamHandler
3334
{
3435
$handler = new StreamHandler('php://stderr');
3536
$handler->setBubble(false);
36-
$handler->setLevel(MonologLogger::CRITICAL);
37+
$handler->setLevel(Level::Critical);
3738
$handler->setFormatter(new LineFormatter("[%datetime%] %level_name%: %message% %context% %extra%\n"));
3839
return $handler;
3940
}
@@ -42,7 +43,7 @@ public static function getDefaultDebugHandler(): StreamHandler
4243
{
4344
$handler = new StreamHandler('php://stdout');
4445
$handler->setBubble(false);
45-
$handler->setLevel(MonologLogger::DEBUG);
46+
$handler->setLevel(Level::Debug);
4647
$handler->setFormatter(new LineFormatter("[%datetime%] %level_name%: %message% %context% %extra%\n"));
4748
return $handler;
4849
}
@@ -51,7 +52,7 @@ public static function getSyncActionErrorHandler(): StreamHandler
5152
{
5253
$logHandler = new StreamHandler('php://stderr');
5354
$logHandler->setBubble(false);
54-
$logHandler->setLevel(MonologLogger::ERROR);
55+
$logHandler->setLevel(Level::Error);
5556
$logHandler->setFormatter(new LineFormatter("%message%\n"));
5657
return $logHandler;
5758
}
@@ -60,7 +61,7 @@ public static function getSyncActionCriticalHandler(): StreamHandler
6061
{
6162
$logHandler = new StreamHandler('php://stderr');
6263
$logHandler->setBubble(false);
63-
$logHandler->setLevel(MonologLogger::CRITICAL);
64+
$logHandler->setLevel(Level::Critical);
6465
$logHandler->setFormatter(new LineFormatter("%message% %context% %extra%\n", null, false, true));
6566
return $logHandler;
6667
}
@@ -69,7 +70,7 @@ public static function getSyncActionDebugHandler(): StreamHandler
6970
{
7071
$logHandler = new StreamHandler('php://stdout');
7172
$logHandler->setBubble(false);
72-
$logHandler->setLevel(MonologLogger::DEBUG);
73+
$logHandler->setLevel(Level::Debug);
7374
$logHandler->setFormatter(new LineFormatter("[%datetime%] %level_name%: %message% %context% %extra%\n"));
7475
return $logHandler;
7576
}

src/Manifest/ManifestManager/Options/OutTable/Serializer/LegacyManifestNormalizer.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313

1414
class LegacyManifestNormalizer implements NormalizerInterface, DenormalizerInterface
1515
{
16+
public function getSupportedTypes(?string $format): array
17+
{
18+
return [
19+
'*' => true,
20+
];
21+
}
22+
1623
public function normalize($object, ?string $format = null, array $context = []): array
1724
{
1825
$data = [];
@@ -263,12 +270,12 @@ private function setMetadata(
263270
}
264271
}
265272

266-
public function supportsNormalization($data, $format = null): bool
273+
public function supportsNormalization($data, $format = null, array $context = []): bool
267274
{
268275
return $data instanceof ManifestOptions;
269276
}
270277

271-
public function supportsDenormalization($data, $type, $format = null): bool
278+
public function supportsDenormalization($data, $type, $format = null, array $context = []): bool
272279
{
273280
return $type === ManifestOptions::class;
274281
}

tests/Logger/LoggerTest.php

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use Keboola\Component\Config\BaseConfig;
99
use Keboola\Component\Logger;
1010
use Monolog\Handler\StreamHandler;
11+
use Monolog\Level;
12+
use Monolog\LogRecord;
1113
use PHPUnit\Framework\Assert;
1214
use PHPUnit\Framework\TestCase;
1315

@@ -25,7 +27,7 @@ public function testDefaultHandler(): void
2527
/** @var StreamHandler $streamHandler */
2628
$streamHandler = $handlers[0];
2729
$this->assertSame('php://stderr', $streamHandler->getUrl());
28-
$this->assertSame(Logger::DEBUG, $streamHandler->getLevel());
30+
$this->assertSame(Level::Debug, $streamHandler->getLevel());
2931
}
3032

3133
public function testSetupSyncActionLogging(): void
@@ -40,32 +42,30 @@ public function testSetupSyncActionLogging(): void
4042
/** @var StreamHandler $streamHandler1 */
4143
$streamHandler1 = $handlers[0];
4244
$this->assertSame('php://stderr', $streamHandler1->getUrl());
43-
$this->assertSame(Logger::CRITICAL, $streamHandler1->getLevel());
45+
$this->assertSame(Level::Critical, $streamHandler1->getLevel());
4446

4547
/** @var StreamHandler $streamHandler2 */
4648
$streamHandler2 = $handlers[1];
4749
$this->assertSame('php://stderr', $streamHandler2->getUrl());
48-
$this->assertSame(Logger::ERROR, $streamHandler2->getLevel());
50+
$this->assertSame(Level::Error, $streamHandler2->getLevel());
4951

5052
// Init streams (stream is created with first message)
51-
$streamHandler1->handle([
52-
'level' => Logger::CRITICAL,
53-
'message' => '',
54-
'extra' => [],
55-
'context' => [],
56-
'datetime' => new DateTimeImmutable(),
57-
'channel' => '',
58-
'level_name' => Logger::getLevelName(Logger::CRITICAL),
59-
]);
60-
$streamHandler2->handle([
61-
'level' => Logger::ERROR,
62-
'message' => '',
63-
'extra' => [],
64-
'context' => [],
65-
'datetime' => new DateTimeImmutable(),
66-
'channel' => '',
67-
'level_name' => Logger::getLevelName(Logger::ERROR),
68-
]);
53+
$streamHandler1->handle(new LogRecord(
54+
datetime: new DateTimeImmutable(),
55+
channel: '',
56+
level: Level::Critical,
57+
message: '',
58+
context: [],
59+
extra: [],
60+
));
61+
$streamHandler2->handle(new LogRecord(
62+
datetime: new DateTimeImmutable(),
63+
channel: '',
64+
level: Level::Error,
65+
message: '',
66+
context: [],
67+
extra: [],
68+
));
6969

7070
// Connect tester (logger) to the streams
7171
/** @var resource $stream1 */
@@ -143,10 +143,10 @@ public function testDebugLogging(): void
143143
StreamTester::getContent(),
144144
);
145145

146-
$this->assertSame(Logger::CRITICAL, $handlerCritical->getLevel());
147-
$this->assertSame(Logger::WARNING, $handlerError->getLevel());
148-
$this->assertSame(Logger::INFO, $handlerLog->getLevel());
149-
$this->assertSame(Logger::DEBUG, $handlerDebug->getLevel());
146+
$this->assertSame(Level::Critical, $handlerCritical->getLevel());
147+
$this->assertSame(Level::Warning, $handlerError->getLevel());
148+
$this->assertSame(Level::Info, $handlerLog->getLevel());
149+
$this->assertSame(Level::Debug, $handlerDebug->getLevel());
150150

151151
$this->assertSame('php://stderr', $handlerCritical->getUrl());
152152
$this->assertSame('php://stderr', $handlerError->getUrl());

tests/Logger/StreamTester.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ public static function getContent(): string
3333
public function filter($in, $out, &$consumed, $closing): int
3434
{
3535
while ($bucket = stream_bucket_make_writeable($in)) {
36-
/** @var \stdClass $bucket */
3736
self::$content .= $bucket->data;
3837
$consumed += $bucket->datalen;
3938
stream_bucket_append($out, $bucket);

0 commit comments

Comments
 (0)