Skip to content

Commit 91456c1

Browse files
committed
remove EnvelopeInterface
1 parent c31a686 commit 91456c1

6 files changed

Lines changed: 32 additions & 47 deletions

File tree

src/Message/Envelope.php

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66

77
use function is_array;
88

9-
abstract class Envelope implements EnvelopeInterface
9+
abstract class Envelope implements MessageInterface
1010
{
11+
/** @psalm-suppress MissingClassConstType */
12+
final public const ENVELOPE_STACK_KEY = 'envelopes';
13+
1114
private readonly MessageInterface $message;
1215

1316
/**
@@ -25,44 +28,44 @@ public function __construct(MessageInterface $message, array $metadata)
2528
$this->message = $message;
2629
}
2730

28-
/** @psalm-suppress MoreSpecificReturnType */
29-
public static function fromData(string $type, mixed $data, array $metadata = []): static
31+
final public static function fromData(string $type, mixed $data, array $metadata = []): static
3032
{
31-
/** @psalm-suppress LessSpecificReturnStatement */
3233
return static::fromMessage(Message::fromData($type, $data, $metadata));
3334
}
3435

35-
public function getMessage(): MessageInterface
36+
abstract public static function fromMessage(MessageInterface $message): static;
37+
38+
final public function getMessage(): MessageInterface
3639
{
3740
return $this->message;
3841
}
3942

40-
public function getType(): string
43+
final public function getType(): string
4144
{
4245
return $this->message->getType();
4346
}
4447

45-
public function getData(): mixed
48+
final public function getData(): mixed
4649
{
4750
return $this->message->getData();
4851
}
4952

50-
public function getMetadata(): array
53+
final public function getMetadata(): array
5154
{
5255
return $this->metadata;
5356
}
5457

5558
private function prepareMetadata(array $messageMeta, array $metadata): array
5659
{
57-
$stack = $messageMeta[EnvelopeInterface::ENVELOPE_STACK_KEY] ?? [];
60+
$stack = $messageMeta[self::ENVELOPE_STACK_KEY] ?? [];
5861
if (!is_array($stack)) {
5962
$stack = [];
6063
}
6164

6265
return array_merge(
6366
$messageMeta,
6467
[
65-
EnvelopeInterface::ENVELOPE_STACK_KEY => array_merge(
68+
self::ENVELOPE_STACK_KEY => array_merge(
6669
$stack,
6770
[static::class],
6871
),

src/Message/EnvelopeInterface.php

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

src/Message/JsonMessageSerializer.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function serialize(MessageInterface $message): string
2525
'meta' => $message->getMetadata(),
2626
];
2727
if (!isset($payload['meta']['message-class'])) {
28-
$payload['meta']['message-class'] = $message instanceof EnvelopeInterface
28+
$payload['meta']['message-class'] = $message instanceof Envelope
2929
? $message->getMessage()::class
3030
: $message::class;
3131
}
@@ -55,10 +55,10 @@ public function unserialize(string $value): MessageInterface
5555
}
5656

5757
$envelopes = [];
58-
if (isset($meta[EnvelopeInterface::ENVELOPE_STACK_KEY]) && is_array($meta[EnvelopeInterface::ENVELOPE_STACK_KEY])) {
59-
$envelopes = $meta[EnvelopeInterface::ENVELOPE_STACK_KEY];
58+
if (isset($meta[Envelope::ENVELOPE_STACK_KEY]) && is_array($meta[Envelope::ENVELOPE_STACK_KEY])) {
59+
$envelopes = $meta[Envelope::ENVELOPE_STACK_KEY];
6060
}
61-
$meta[EnvelopeInterface::ENVELOPE_STACK_KEY] = [];
61+
$meta[Envelope::ENVELOPE_STACK_KEY] = [];
6262

6363
$class = $meta['message-class'] ?? Message::class;
6464
// Don't check subclasses when it's a default class: that's faster
@@ -72,7 +72,7 @@ public function unserialize(string $value): MessageInterface
7272
$message = $class::fromData($type, $payload['data'] ?? null, $meta);
7373

7474
foreach ($envelopes as $envelope) {
75-
if (is_string($envelope) && class_exists($envelope) && is_subclass_of($envelope, EnvelopeInterface::class)) {
75+
if (is_string($envelope) && class_exists($envelope) && is_subclass_of($envelope, Envelope::class)) {
7676
$message = $envelope::fromMessage($message);
7777
}
7878
}

tests/Unit/EnvelopeTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Yiisoft\Queue\Tests\Unit;
66

77
use PHPUnit\Framework\TestCase;
8-
use Yiisoft\Queue\Message\EnvelopeInterface;
8+
use Yiisoft\Queue\Message\Envelope;
99
use Yiisoft\Queue\Message\IdEnvelope;
1010
use Yiisoft\Queue\Message\Message;
1111

@@ -18,7 +18,7 @@ public function testEnvelopeStack(): void
1818

1919
$this->assertEquals('test', $message->getMessage()->getData());
2020

21-
$stack = $message->getMetadata()[EnvelopeInterface::ENVELOPE_STACK_KEY];
21+
$stack = $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY];
2222
$this->assertIsArray($stack);
2323

2424
$this->assertEquals([
@@ -37,7 +37,7 @@ public function testEnvelopeDuplicates(): void
3737

3838
$this->assertEquals('test', $message->getMessage()->getData());
3939

40-
$stack = $message->getMetadata()[EnvelopeInterface::ENVELOPE_STACK_KEY];
40+
$stack = $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY];
4141
$this->assertIsArray($stack);
4242
$this->assertEquals([
4343
IdEnvelope::class,

tests/Unit/Message/EnvelopeTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
namespace Yiisoft\Queue\Tests\Unit\Message;
66

77
use PHPUnit\Framework\TestCase;
8+
use Yiisoft\Queue\Message\Envelope;
89
use Yiisoft\Queue\Tests\App\DummyEnvelope;
9-
use Yiisoft\Queue\Message\EnvelopeInterface;
1010
use Yiisoft\Queue\Message\Message;
1111

1212
final class EnvelopeTest extends TestCase
@@ -28,11 +28,11 @@ public function testFromData(): void
2828

2929
public function testNonArrayStackIsNormalized(): void
3030
{
31-
$base = new Message('handler', 'data', [EnvelopeInterface::ENVELOPE_STACK_KEY => 'oops']);
31+
$base = new Message('handler', 'data', [Envelope::ENVELOPE_STACK_KEY => 'oops']);
3232
$wrapped = new DummyEnvelope($base);
3333

3434
$meta = $wrapped->getMetadata();
35-
self::assertIsArray($meta[EnvelopeInterface::ENVELOPE_STACK_KEY]);
36-
self::assertSame([DummyEnvelope::class], $meta[EnvelopeInterface::ENVELOPE_STACK_KEY]);
35+
self::assertIsArray($meta[Envelope::ENVELOPE_STACK_KEY]);
36+
self::assertSame([DummyEnvelope::class], $meta[Envelope::ENVELOPE_STACK_KEY]);
3737
}
3838
}

tests/Unit/Message/JsonMessageSerializerTest.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use InvalidArgumentException;
88
use PHPUnit\Framework\Attributes\DataProvider;
99
use PHPUnit\Framework\TestCase;
10-
use Yiisoft\Queue\Message\EnvelopeInterface;
10+
use Yiisoft\Queue\Message\Envelope;
1111
use Yiisoft\Queue\Message\IdEnvelope;
1212
use Yiisoft\Queue\Message\JsonMessageSerializer;
1313
use Yiisoft\Queue\Message\Message;
@@ -115,7 +115,7 @@ public function testUnserializeFromData(): void
115115
$message = $serializer->unserialize(json_encode($payload, JSON_THROW_ON_ERROR));
116116

117117
$this->assertEquals($payload['data'], $message->getData());
118-
$this->assertEquals([EnvelopeInterface::ENVELOPE_STACK_KEY => []], $message->getMetadata());
118+
$this->assertEquals([Envelope::ENVELOPE_STACK_KEY => []], $message->getMetadata());
119119
}
120120

121121
public function testUnserializeWithMetadata(): void
@@ -126,7 +126,7 @@ public function testUnserializeWithMetadata(): void
126126
$message = $serializer->unserialize(json_encode($payload, JSON_THROW_ON_ERROR));
127127

128128
$this->assertEquals($payload['data'], $message->getData());
129-
$this->assertEquals(['int' => 1, 'str' => 'string', 'bool' => true, EnvelopeInterface::ENVELOPE_STACK_KEY => []], $message->getMetadata());
129+
$this->assertEquals(['int' => 1, 'str' => 'string', 'bool' => true, Envelope::ENVELOPE_STACK_KEY => []], $message->getMetadata());
130130
}
131131

132132
public function testUnserializeEnvelopeStack(): void
@@ -135,7 +135,7 @@ public function testUnserializeEnvelopeStack(): void
135135
'type' => 'handler',
136136
'data' => 'test',
137137
'meta' => [
138-
EnvelopeInterface::ENVELOPE_STACK_KEY => [
138+
Envelope::ENVELOPE_STACK_KEY => [
139139
IdEnvelope::class,
140140
],
141141
],
@@ -146,7 +146,7 @@ public function testUnserializeEnvelopeStack(): void
146146
$message = $serializer->unserialize(json_encode($payload, JSON_THROW_ON_ERROR));
147147

148148
$this->assertEquals($payload['data'], $message->getData());
149-
$this->assertEquals([IdEnvelope::class], $message->getMetadata()[EnvelopeInterface::ENVELOPE_STACK_KEY]);
149+
$this->assertEquals([IdEnvelope::class], $message->getMetadata()[Envelope::ENVELOPE_STACK_KEY]);
150150

151151
$this->assertInstanceOf(IdEnvelope::class, $message);
152152
$this->assertNull($message->getId());
@@ -192,15 +192,15 @@ public function testSerializeEnvelopeStack(): void
192192
$this->assertInstanceOf(IdEnvelope::class, $message);
193193
$this->assertEquals('test-id', $message->getId());
194194
$this->assertEquals([
195-
EnvelopeInterface::ENVELOPE_STACK_KEY => [
195+
Envelope::ENVELOPE_STACK_KEY => [
196196
IdEnvelope::class,
197197
],
198198
IdEnvelope::MESSAGE_ID_KEY => 'test-id',
199199
'message-class' => Message::class,
200200
], $message->getMetadata());
201201

202202
$this->assertEquals([
203-
EnvelopeInterface::ENVELOPE_STACK_KEY => [],
203+
Envelope::ENVELOPE_STACK_KEY => [],
204204
IdEnvelope::MESSAGE_ID_KEY => 'test-id',
205205
'message-class' => Message::class,
206206
], $message->getMessage()->getMetadata());

0 commit comments

Comments
 (0)