Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5adc94d

Browse files
committed
[Messenger] Add completion to command messenger:consume
1 parentd0f6b98 commit5adc94d

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/console.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
service('logger')->nullOnInvalid(),
152152
[],// Receiver names
153153
service('messenger.listener.reset_services')->nullOnInvalid(),
154+
[],// Bus names
154155
])
155156
->tag('console.command')
156157
->tag('monolog.logger', ['channel' =>'messenger'])

‎src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
usePsr\Container\ContainerInterface;
1515
usePsr\Log\LoggerInterface;
1616
useSymfony\Component\Console\Command\Command;
17+
useSymfony\Component\Console\Completion\CompletionInput;
18+
useSymfony\Component\Console\Completion\CompletionSuggestions;
1719
useSymfony\Component\Console\Exception\RuntimeException;
1820
useSymfony\Component\Console\Input\InputArgument;
1921
useSymfony\Component\Console\Input\InputInterface;
@@ -45,15 +47,17 @@ class ConsumeMessagesCommand extends Command
4547
private$logger;
4648
private$receiverNames;
4749
private$resetServicesListener;
50+
private$busIds;
4851

49-
publicfunction__construct(RoutableMessageBus$routableBus,ContainerInterface$receiverLocator,EventDispatcherInterface$eventDispatcher,LoggerInterface$logger =null,array$receiverNames = [],ResetServicesListener$resetServicesListener =null)
52+
publicfunction__construct(RoutableMessageBus$routableBus,ContainerInterface$receiverLocator,EventDispatcherInterface$eventDispatcher,LoggerInterface$logger =null,array$receiverNames = [],ResetServicesListener$resetServicesListener =null,array$busIds = [])
5053
{
5154
$this->routableBus =$routableBus;
5255
$this->receiverLocator =$receiverLocator;
5356
$this->eventDispatcher =$eventDispatcher;
5457
$this->logger =$logger;
5558
$this->receiverNames =$receiverNames;
5659
$this->resetServicesListener =$resetServicesListener;
60+
$this->busIds =$busIds;
5761

5862
parent::__construct();
5963
}
@@ -223,6 +227,19 @@ protected function execute(InputInterface $input, OutputInterface $output)
223227
return0;
224228
}
225229

230+
publicfunctioncomplete(CompletionInput$input,CompletionSuggestions$suggestions):void
231+
{
232+
if ($input->mustSuggestArgumentValuesFor('receivers')) {
233+
$suggestions->suggestValues(array_diff($this->receiverNames,array_diff($input->getArgument('receivers'), [$input->getCompletionValue()])));
234+
235+
return;
236+
}
237+
238+
if ($input->mustSuggestOptionValuesFor('bus')) {
239+
$suggestions->suggestValues($this->busIds);
240+
}
241+
}
242+
226243
privatefunctionconvertToBytes(string$memoryLimit):int
227244
{
228245
$memoryLimit =strtolower($memoryLimit);

‎src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
useSymfony\Component\DependencyInjection\Definition;
2020
useSymfony\Component\DependencyInjection\Exception\RuntimeException;
2121
useSymfony\Component\DependencyInjection\Reference;
22+
useSymfony\Component\Form\Exception\OutOfBoundsException;
2223
useSymfony\Component\Messenger\Handler\HandlerDescriptor;
2324
useSymfony\Component\Messenger\Handler\HandlersLocator;
2425
useSymfony\Component\Messenger\Handler\MessageSubscriberInterface;
@@ -309,6 +310,11 @@ private function registerReceivers(ContainerBuilder $container, array $busIds)
309310
}
310311

311312
$consumeCommandDefinition->replaceArgument(4,array_values($receiverNames));
313+
try {
314+
$consumeCommandDefinition->replaceArgument(6,$busIds);
315+
}catch (OutOfBoundsException$e) {
316+
// ignore to preserve compatibility with symfony/framework-bundle < 5.4
317+
}
312318
}
313319

314320
if ($container->hasDefinition('console.command.messenger_setup_transports')) {

‎src/Symfony/Component/Messenger/Tests/Command/ConsumeMessagesCommandTest.php‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
usePHPUnit\Framework\TestCase;
1515
useSymfony\Component\Console\Application;
16+
useSymfony\Component\Console\Tester\CommandCompletionTester;
1617
useSymfony\Component\Console\Tester\CommandTester;
1718
useSymfony\Component\DependencyInjection\ContainerInterface;
1819
useSymfony\Component\DependencyInjection\ServiceLocator;
@@ -150,4 +151,25 @@ public function testRunWithResetServicesOption(bool $shouldReset)
150151
$tester->assertCommandIsSuccessful();
151152
$this->assertStringContainsString('[OK] Consuming messages from transports "dummy-receiver"',$tester->getDisplay());
152153
}
154+
155+
/**
156+
* @dataProvider provideCompletionSuggestions
157+
*/
158+
publicfunctiontestComplete(array$input,array$expectedSuggestions)
159+
{
160+
$bus =$this->createMock(RoutableMessageBus::class);
161+
$receiverLocator =$this->createMock(ContainerInterface::class);
162+
$command =newConsumeMessagesCommand($bus,$receiverLocator,newEventDispatcher(),null, ['async','async_high','failed'],null, ['messenger.bus.default']);
163+
$tester =newCommandCompletionTester($command);
164+
$suggestions =$tester->complete($input);
165+
$this->assertSame($expectedSuggestions,$suggestions);
166+
}
167+
168+
publicfunctionprovideCompletionSuggestions()
169+
{
170+
yield'receiver' => [[''], ['async','async_high','failed']];
171+
yield'receiver (value)' => [['async'], ['async','async_high','failed']];
172+
yield'receiver (no repeat)' => [['async',''], ['async_high','failed']];
173+
yield'option --bus' => [['--bus',''], ['messenger.bus.default']];
174+
}
153175
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp