8000 Remove the extra layer of complexity with the adapter and adapter fac… · symfony/symfony@487b763 · GitHub
[go: up one dir, main page]

Skip to content

Commit 487b763

Browse files
committed
Remove the extra layer of complexity with the adapter and adapter factory interface
1 parent bb31661 commit 487b763

File tree

6 files changed

+41
-93
lines changed

6 files changed

+41
-93
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1473,19 +1473,20 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
14731473
}
14741474

14751475
foreach ($config['adapters'] as $name => $adapter) {
1476-
$container->setDefinition($adapterId = 'messenger.'.$name.'_adapter', (new Definition(MessengerAdapterInterface::class, array(
1476+
$container->setDefinition('messenger.'.$name.'_sender', (new Definition(SenderInterface::class))->setFactory(array(
1477+
new Reference('messenger.adapter_factory'),
1478+
'createSender'
1479+
))->setArguments(array(
14771480
$adapter['dsn'],
14781481
$adapter['options'],
1479-
)))->setFactory(array(new Reference('messenger.adapter_factory'), 'create'))->setPublic(true));
1480-
1481-
$container->setDefinition('messenger.'.$name.'_sender', (new Definition(SenderInterface::class))->setFactory(array(
1482-
new Reference($adapterId),
1483-
'sender',
14841482
))->addTag('messenger.sender'));
14851483

14861484
$container->setDefinition('messenger.'.$name.'_receiver', (new Definition(ReceiverInterface::class))->setFactory(array(
1487-
new Reference($adapterId),
1488-
'rece 8000 iver',
1485+
new Reference('messenger.adapter_factory'),
1486+
'createReceiver'
1487+
))->setArguments(array(
1488+
$adapter['dsn'],
1489+
$adapter['options'],
14891490
))->addTag('messenger.receiver'));
14901491
}
14911492
}

src/Symfony/Component/Messenger/Adapter/Factory/AdapterFactoryInterface.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,19 @@
1111

1212
namespace Symfony\Component\Messenger\Adapter\Factory;
1313

14+
use Symfony\Component\Messenger\Transport\ReceiverInterface;
15+
use Symfony\Component\Messenger\Transport\SenderInterface;
16+
1417
/**
1518
* Creates a Messenger adapter.
1619
*
1720
* @author Samuel Roze <samuel.roze@gmail.com>
1821
*/
1922
interface AdapterFactoryInterface
2023
{
21-
public function create(string $dsn, array $options): AdapterInterface;
24+
public function createReceiver(string $dsn, array $options): ReceiverInterface;
25+
26+
public function createSender(string $dsn, array $options): SenderInterface;
2227

2328
public function supports(string $dsn, array $options): bool;
2429
}

src/Symfony/Component/Messenger/Adapter/Factory/AdapterInterface.php

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

src/Symfony/Component/Messenger/Adapter/Factory/ChainAdapterFactory.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace Symfony\Component\Messenger\Adapter\Factory;
1313

14+
use Symfony\Component\Messenger\Transport\ReceiverInterface;
15+
use Symfony\Component\Messenger\Transport\SenderInterface;
16+
1417
/**
1518
* @author Samuel Roze <samuel.roze@gmail.com>
1619
*/
@@ -26,15 +29,26 @@ public function __construct(iterable $factories)
2629
$this->factories = $factories;
2730
}
2831

29-
public function create(string $dsn, array $options): AdapterInterface
32+
public function createReceiver(string $dsn, array $options): ReceiverInterface
33+
{
34+
foreach ($this->factories as $factory) {
35+
if ($factory->supports($dsn, $options)) {
36+
return $factory->createReceiver($dsn, $options);
37+
}
38+
}
39+
40+
throw new \InvalidArgumentException(sprintf('No adapter supports the given DSN "%s".', $dsn));
41+
}
42+
43+
public function createSender(string $dsn, array $options): SenderInterface
3044
{
3145
foreach ($this->factories as $factory) {
3246
if ($factory->supports($dsn, $options)) {
33-
return $factory->create($dsn, $options);
47+
return $factory->createSender($dsn, $options);
3448
}
3549
}
3650

37-
throw new \InvalidArgumentException(sprintf('The given DSN "%s" is invalid.', $dsn));
51+
throw new \InvalidArgumentException(sprintf('No adapter supports the given DSN "%s".', $dsn));
3852
}
3953

4054
public function supports(string $dsn, array $options): bool

src/Symfony/Component/Messenger/Adapter/PhpAmqp/AmqpAdapter.php

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

src/Symfony/Component/Messenger/Adapter/PhpAmqp/AmqpAdapterFactory.php

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

1414
use Symfony\Component\Messenger\Adapter\Factory\AdapterInterface;
1515
use Symfony\Component\Messenger\Adapter\Factory\AdapterFactoryInterface;
16+
use Symfony\Component\Messenger\Transport\ReceiverInterface;
17+
use Symfony\Component\Messenger\Transport\SenderInterface;
1618
use Symfony\Component\Messenger\Transport\Serialization\DecoderInterface;
1719
use Symfony\Component\Messenger\Transport\Serialization\EncoderInterface;
1820

@@ -32,13 +34,14 @@ public function __construct(EncoderInterface $encoder, DecoderInterface $decoder
3234
$this->debug = $debug;
3335
}
3436

35-
public function create(string $dsn, array $options): AdapterInterface
37+
public function createReceiver(string $dsn, array $options): ReceiverInterface
3638
{
37-
return new AmqpAdapter(
38-
new AmqpReceiver($this->decoder, $this->connection),
39-
new AmqpSender($this->encoder, $this->connection),
40-
Connection::fromDsn($dsn, $options, $this->debug)
41-
);
39+
return new AmqpReceiver($this->decoder, Connection::fromDsn($dsn, $options, $this->debug));
40+
}
41+
42+
public function createSender(string $dsn, array $options): SenderInterface
43+
{
44+
return new AmqpSender($this->encoder, Connection::fromDsn($dsn, $options, $this->debug));
4245
}
4346

4447
public function supports(string $dsn, array $options): bool

0 commit comments

Comments
 (0)
0