Changing the Default Command ¶
The Console component will always run the ListCommand
when no command name is
passed. In order to change the default command you need to pass the command
name to the setDefaultCommand()
method:
コマンド名が渡されない場合、Console コンポーネントは常に ListCommand を実行します。デフォルトのコマンドを変更するには、コマンド名を setDefaultCommand() メソッドに渡す必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
namespace Acme\Console\Command;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand(name: 'hello:world')]
class HelloWorldCommand extends Command
{
protected function configure()
{
$this->setDescription('Outputs "Hello World"');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('Hello World');
}
}
|
Executing the application and changing the default command:
アプリケーションの実行とデフォルト コマンドの変更:
1 2 3 4 5 6 7 8 9 |
// application.php
use Acme\Console\Command\HelloWorldCommand;
use Symfony\Component\Console\Application;
$command = new HelloWorldCommand();
$application = new Application();
$application->add($command);
$application->setDefaultCommand($command->getName());
$application->run();
|
Test the new default console command by running the following:
次のコマンドを実行して、新しいデフォルトのコンソール コマンドをテストします。
1 |
$ php application.php
|
This will print the following to the command line:
これにより、コマンド ラインに次のように出力されます。
1 |
Hello World
|
Caution
注意
This feature has a limitation: you cannot pass any argument or option to the default command because they are ignored.
この機能には制限があります。無視されるため、引数またはオプションをデフォルト コマンドに渡すことはできません。
Learn More! ¶
- Building a single Command Application単一のコマンド アプリケーションのビルド