@@ -4,9 +4,16 @@ Question Helper
44The :class: `Symfony\\ Component\\ Console\\ Helper\\ QuestionHelper ` provides
55functions to ask the user for more information. It is included in the default
66helper set and you can get it by calling
7- :method: `Symfony\\ Component\\ Console\\ Command \\ Command::getHelper `::
7+ :method: `Symfony\\ Component\\ Console\\ Application::getHelperSet `::
88
9- $helper = $this->getHelper('question');
9+ use Symfony\Component\Console\Application;
10+
11+ public function __invoke(Application $application): int
12+ {
13+ $helper = $application->getHelperSet()->get('question');
14+
15+ // ...
16+ }
1017
1118The Question Helper has a single method
1219:method: `Symfony\\ Component\\ Console\\ Helper\\ QuestionHelper::ask ` that needs an
@@ -27,6 +34,7 @@ Suppose you want to confirm an action before actually executing it. Add
2734the following to your command::
2835
2936 // ...
37+ use Symfony\Component\Console\Application;
3038 use Symfony\Component\Console\Attribute\AsCommand;
3139 use Symfony\Component\Console\Command\Command;
3240 use Symfony\Component\Console\Input\InputInterface;
@@ -36,9 +44,9 @@ the following to your command::
3644 #[AsCommand(name: 'app:my-command')]
3745 class MyCommand
3846 {
39- public function __invoke(InputInterface $input, OutputInterface $output): int
47+ public function __invoke(InputInterface $input, OutputInterface $output, Application $application ): int
4048 {
41- $helper = $this->getHelper ('question');
49+ $helper = $application->getHelperSet()->get ('question');
4250 $question = new ConfirmationQuestion('Continue with this action?', false);
4351
4452 if (!$helper->ask($input, $output, $question)) {
@@ -91,7 +99,7 @@ if you want to know a bundle name, you can add this to your command::
9199 use Symfony\Component\Console\Question\Question;
92100
93101 // ...
94- public function execute (InputInterface $input, OutputInterface $output): int
102+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
95103 {
96104 // ...
97105 $question = new Question('Please enter the name of the bundle', 'AcmeDemoBundle');
@@ -121,10 +129,10 @@ but ``red`` could be set instead (could be more explicit)::
121129 use Symfony\Component\Console\Question\ChoiceQuestion;
122130
123131 // ...
124- public function execute (InputInterface $input, OutputInterface $output): int
132+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
125133 {
126134 // ...
127- $helper = $this->getHelper ('question');
135+ $helper = $application->getHelperSet()->get ('question');
128136 $question = new ChoiceQuestion(
129137 'Please select your favorite color (defaults to red)',
130138 // choices can also be PHP objects that implement __toString() method
@@ -184,10 +192,10 @@ this use :method:`Symfony\\Component\\Console\\Question\\ChoiceQuestion::setMult
184192 use Symfony\Component\Console\Question\ChoiceQuestion;
185193
186194 // ...
187- public function execute (InputInterface $input, OutputInterface $output): int
195+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
188196 {
189197 // ...
190- $helper = $this->getHelper ('question');
198+ $helper = $application->getHelperSet()->get ('question');
191199 $question = new ChoiceQuestion(
192200 'Please select your favorite colors (defaults to red and blue)',
193201 ['red', 'blue', 'yellow'],
@@ -218,10 +226,10 @@ will be autocompleted as the user types::
218226 use Symfony\Component\Console\Question\Question;
219227
220228 // ...
221- public function execute (InputInterface $input, OutputInterface $output): int
229+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
222230 {
223231 // ...
224- $helper = $this->getHelper ('question');
232+ $helper = $application->getHelperSet()->get ('question');
225233
226234 $bundles = ['AcmeDemoBundle', 'AcmeBlogBundle', 'AcmeStoreBundle'];
227235 $question = new Question('Please enter the name of a bundle', 'FooBundle');
@@ -241,9 +249,9 @@ provide a callback function to dynamically generate suggestions::
241249 use Symfony\Component\Console\Question\Question;
242250
243251 // ...
244- public function execute (InputInterface $input, OutputInterface $output): int
252+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
245253 {
246- $helper = $this->getHelper ('question');
254+ $helper = $application->getHelperSet()->get ('question');
247255
248256 // This function is called whenever the input changes and new
249257 // suggestions are needed.
@@ -282,10 +290,10 @@ You can also specify if you want to not trim the answer by setting it directly w
282290 use Symfony\Component\Console\Question\Question;
283291
284292 // ...
285- public function execute (InputInterface $input, OutputInterface $output): int
293+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
286294 {
287295 // ...
288- $helper = $this->getHelper ('question');
296+ $helper = $application->getHelperSet()->get ('question');
289297
290298 $question = new Question('What is the name of the child?');
291299 $question->setTrimmable(false);
@@ -308,10 +316,10 @@ the response to a question should allow multiline answers by passing ``true`` to
308316 use Symfony\Component\Console\Question\Question;
309317
310318 // ...
311- public function execute (InputInterface $input, OutputInterface $output): int
319+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
312320 {
313321 // ...
314- $helper = $this->getHelper ('question');
322+ $helper = $application->getHelperSet()->get ('question');
315323
316324 $question = new Question('How do you solve world peace?');
317325 $question->setMultiline(true);
@@ -335,10 +343,10 @@ convenient for passwords::
335343 use Symfony\Component\Console\Question\Question;
336344
337345 // ...
338- public function execute (InputInterface $input, OutputInterface $output): int
346+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
339347 {
340348 // ...
341- $helper = $this->getHelper ('question');
349+ $helper = $application->getHelperSet()->get ('question');
342350
343351 $question = new Question('What is the database password?');
344352 $question->setHidden(true);
@@ -372,10 +380,10 @@ convenient for passwords::
372380 use Symfony\Component\Console\Question\ChoiceQuestion;
373381
374382 // ...
375- public function execute (InputInterface $input, OutputInterface $output): int
383+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
376384 {
377385 // ...
378- $helper = $this->getHelper ('question');
386+ $helper = $application->getHelperSet()->get ('question');
379387 QuestionHelper::disableStty();
380388
381389 // ...
@@ -396,10 +404,10 @@ method::
396404 use Symfony\Component\Console\Question\Question;
397405
398406 // ...
399- public function execute (InputInterface $input, OutputInterface $output): int
407+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
400408 {
401409 // ...
402- $helper = $this->getHelper ('question');
410+ $helper = $application->getHelperSet()->get ('question');
403411
404412 $question = new Question('Please enter the name of the bundle', 'AcmeDemoBundle');
405413 $question->setNormalizer(function (string $value): string {
@@ -434,10 +442,10 @@ method::
434442 use Symfony\Component\Console\Question\Question;
435443
436444 // ...
437- public function execute (InputInterface $input, OutputInterface $output): int
445+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
438446 {
439447 // ...
440- $helper = $this->getHelper ('question');
448+ $helper = $application->getHelperSet()->get ('question');
441449
442450 $question = new Question('Please enter the name of the bundle', 'AcmeDemoBundle');
443451 $question->setValidator(function (string $answer): string {
@@ -494,10 +502,10 @@ You can also use a validator with a hidden question::
494502 use Symfony\Component\Console\Question\Question;
495503
496504 // ...
497- public function execute (InputInterface $input, OutputInterface $output): int
505+ public function __invoke (InputInterface $input, OutputInterface $output, Application $application ): int
498506 {
499507 // ...
500- $helper = $this->getHelper ('question');
508+ $helper = $application->getHelperSet()->get ('question');
501509
502510 $question = new Question('Please enter your password');
503511 $question->setNormalizer(function (?string $value): string {
0 commit comments