diff --git a/UPGRADE-4.2.md b/UPGRADE-4.2.md index 670fe3c7cf..bfc72e947d 100644 --- a/UPGRADE-4.2.md +++ b/UPGRADE-4.2.md @@ -87,6 +87,7 @@ FrameworkBundle Messenger --------- + * `EnvelopeItemInterface` doesn't extend `Serializable` anymore * The `handle` method of the `Symfony\Component\Messenger\Middleware\ValidationMiddleware` and `Symfony\Component\Messenger\Asynchronous\Middleware\SendMessageMiddleware` middlewares now requires an `Envelope` object to be given (because they implement the `EnvelopeAwareInterface`). When using these middleware with the provided `MessageBus`, you will not have to do anything. If you use the middlewares any other way, you can use `Envelope::wrap($message)` to create an envelope for your message. Security diff --git a/src/Symfony/Component/Messenger/Asynchronous/Transport/ReceivedMessage.php b/src/Symfony/Component/Messenger/Asynchronous/Transport/ReceivedMessage.php index c713a589ad..ad2a98df73 100644 --- a/src/Symfony/Component/Messenger/Asynchronous/Transport/ReceivedMessage.php +++ b/src/Symfony/Component/Messenger/Asynchronous/Transport/ReceivedMessage.php @@ -16,6 +16,7 @@ use Symfony\Component\Messenger\EnvelopeItemInterface; /** * Marker config for a received message. + * * This is mainly used by the `SendMessageMiddleware` middleware to identify * a message should not be sent if it was just received. * @@ -25,13 +26,4 @@ use Symfony\Component\Messenger\EnvelopeItemInterface; */ final class ReceivedMessage implements EnvelopeItemInterface { - public function serialize() - { - return ''; - } - - public function unserialize($serialized) - { - // noop - } } diff --git a/src/Symfony/Component/Messenger/CHANGELOG.md b/src/Symfony/Component/Messenger/CHANGELOG.md new file mode 100644 index 0000000000..5ec8b11e86 --- /dev/null +++ b/src/Symfony/Component/Messenger/CHANGELOG.md @@ -0,0 +1,8 @@ +CHANGELOG +========= + +4.2.0 +----- + + * `ValidationMiddleware::handle()` and `SendMessageMiddleware::handle()` now require an `Envelope` object + * `EnvelopeItemInterface` doesn't extend `Serializable` anymore diff --git a/src/Symfony/Component/Messenger/EnvelopeItemInterface.php b/src/Symfony/Component/Messenger/EnvelopeItemInterface.php index 2561a12754..1635f0eda6 100644 --- a/src/Symfony/Component/Messenger/EnvelopeItemInterface.php +++ b/src/Symfony/Component/Messenger/EnvelopeItemInterface.php @@ -13,12 +13,13 @@ namespace Symfony\Component\Messenger; /** * An envelope item related to a message. + * * This item must be serializable for transport. * * @author Maxime Steinhausser * * @experimental in 4.1 */ -interface EnvelopeItemInterface extends \Serializable +interface EnvelopeItemInterface { } diff --git a/src/Symfony/Component/Messenger/Middleware/Configuration/ValidationConfiguration.php b/src/Symfony/Component/Messenger/Middleware/Configuration/ValidationConfiguration.php index 1b6180857b..015916f336 100644 --- a/src/Symfony/Component/Messenger/Middleware/Configuration/ValidationConfiguration.php +++ b/src/Symfony/Component/Messenger/Middleware/Configuration/ValidationConfiguration.php @@ -35,24 +35,4 @@ final class ValidationConfiguration implements EnvelopeItemInterface { return $this->groups; } - - public function serialize() - { - $isGroupSequence = $this->groups instanceof GroupSequence; - - return serialize(array( - 'groups' => $isGroupSequence ? $this->groups->groups : $this->groups, - 'is_group_sequence' => $isGroupSequence, - )); - } - - public function unserialize($serialized) - { - list( - 'groups' => $groups, - 'is_group_sequence' => $isGroupSequence - ) = unserialize($serialized, array('allowed_classes' => false)); - - $this->__construct($isGroupSequence ? new GroupSequence($groups) : $groups); - } } diff --git a/src/Symfony/Component/Messenger/Tests/Asynchronous/Transport/Serialization/SerializerConfigurationTest.php b/src/Symfony/Component/Messenger/Tests/Asynchronous/Transport/Serialization/SerializerConfigurationTest.php index a5faf45b13..6c3e72394d 100644 --- a/src/Symfony/Component/Messenger/Tests/Asynchronous/Transport/Serialization/SerializerConfigurationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Asynchronous/Transport/Serialization/SerializerConfigurationTest.php @@ -24,7 +24,6 @@ class SerializerConfigurationTest extends TestCase { $config = new SerializerConfiguration(array(ObjectNormalizer::GROUPS => array('Default', 'Extra'))); - $this->assertTrue(is_subclass_of(SerializerConfiguration::class, \Serializable::class, true)); $this->assertEquals($config, unserialize(serialize($config))); } } diff --git a/src/Symfony/Component/Messenger/Tests/Fixtures/AnEnvelopeItem.php b/src/Symfony/Component/Messenger/Tests/Fixtures/AnEnvelopeItem.php index 9e5bb0c92b..e2cf685dcc 100644 --- a/src/Symfony/Component/Messenger/Tests/Fixtures/AnEnvelopeItem.php +++ b/src/Symfony/Component/Messenger/Tests/Fixtures/AnEnvelopeItem.php @@ -15,19 +15,4 @@ use Symfony\Component\Messenger\EnvelopeItemInterface; class AnEnvelopeItem implements EnvelopeItemInterface { - /** - * {@inheritdoc} - */ - public function serialize() - { - return ''; - } - - /** - * {@inheritdoc} - */ - public function unserialize($serialized) - { - // noop - } } diff --git a/src/Symfony/Component/Messenger/Tests/Middleware/Configuration/ValidationConfigurationTest.php b/src/Symfony/Component/Messenger/Tests/Middleware/Configuration/ValidationConfigurationTest.php index b4ccf614b2..6ab3d1487f 100644 --- a/src/Symfony/Component/Messenger/Tests/Middleware/Configuration/ValidationConfigurationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Middleware/Configuration/ValidationConfigurationTest.php @@ -31,7 +31,6 @@ class ValidationConfigurationTest extends TestCase public function testSerializable() { - $this->assertTrue(is_subclass_of(ValidationConfiguration::class, \Serializable::class, true)); $this->assertEquals($config = new ValidationConfiguration(array('Default', 'Extra')), unserialize(serialize($config))); $this->assertEquals($config = new ValidationConfiguration(new GroupSequence(array('Default', 'Then'))), unserialize(serialize($config))); } diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php index 214b773092..ee8ed66a9e 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Serialization/SerializerTest.php @@ -98,6 +98,6 @@ class SerializerTest extends TestCase $this->assertArrayHasKey('type', $encoded['headers']); $this->assertEquals(DummyMessage::class, $encoded['headers']['type']); $this->assertArrayHasKey('X-Message-Envelope-Items', $encoded['headers']); - $this->assertSame('a:2:{s:75:"Symfony\Component\Messenger\Transport\Serialization\SerializerConfiguration";C:75:"Symfony\Component\Messenger\Transport\Serialization\SerializerConfiguration":59:{a:1:{s:7:"context";a:1:{s:6:"groups";a:1:{i:0;s:3:"foo";}}}}s:76:"Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration";C:76:"Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration":82:{a:2:{s:6:"groups";a:2:{i:0;s:3:"foo";i:1;s:3:"bar";}s:17:"is_group_sequence";b:0;}}}', $encoded['headers']['X-Message-Envelope-Items']); + $this->assertSame('a:2:{s:75:"Symfony\Component\Messenger\Transport\Serialization\SerializerConfiguration";O:75:"Symfony\Component\Messenger\Transport\Serialization\SerializerConfiguration":1:{s:84:"'."\0".'Symfony\Component\Messenger\Transport\Serialization\SerializerConfiguration'."\0".'context";a:1:{s:6:"groups";a:1:{i:0;s:3:"foo";}}}s:76:"Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration";O:76:"Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration":1:{s:84:"'."\0".'Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration'."\0".'groups";a:2:{i:0;s:3:"foo";i:1;s:3:"bar";}}}', $encoded['headers']['X-Message-Envelope-Items']); } } diff --git a/src/Symfony/Component/Messenger/Transport/Serialization/SerializerConfiguration.php b/src/Symfony/Component/Messenger/Transport/Serialization/SerializerConfiguration.php index 478e197080..b4c1d76958 100644 --- a/src/Symfony/Component/Messenger/Transport/Serialization/SerializerConfiguration.php +++ b/src/Symfony/Component/Messenger/Transport/Serialization/SerializerConfiguration.php @@ -31,16 +31,4 @@ final class SerializerConfiguration implements EnvelopeItemInterface { return $this->context; } - - public function serialize() - { - return serialize(array('context' => $this->context)); - } - - public function unserialize($serialized) - { - list('context' => $context) = unserialize($serialized, array('allowed_classes' => false)); - - $this->__construct($context); - } }