How to Hide Console Commands

By default, all console commands are listed when executing the console application script without arguments or when using the list command.

デフォルトでは、コンソール アプリケーション スクリプトを引数なしで実行したとき、または list コマンドを使用したときに、すべてのコンソール コマンドが一覧表示されます。

However, sometimes commands are not intended to be run by end-users; for example, commands for the legacy parts of the application, commands exclusively run through scheduled tasks, etc.

ただし、エンドユーザーが実行することを意図していないコマンドもあります。たとえば、アプリケーションのレガシー部分のコマンド、スケジュールされたタスクを排他的に実行するコマンドなどです。

In those cases, you can define the command as hidden by setting to true the hidden property of the AsCommand attribute:

このような場合、AsCommand 属性の hidden プロパティを true に設定することで、コマンドを非表示として定義できます。
1
2
3
4
5
6
7
8
9
10
11
// src/Command/LegacyCommand.php
namespace App\Command;

use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;

#[AsCommand(name: 'app:legacy', hidden: true)]
class LegacyCommand extends Command
{
    // ...
}

Hidden commands behave the same as normal commands but they are no longer displayed in command listings, so end-users are not aware of their existence.

非表示のコマンドは通常のコマンドと同じように動作しますが、コマンド リストには表示されないため、エンド ユーザーはそれらの存在に気付きません。

Note

ノート

Hidden commands are still available using the JSON or XML descriptor.

非表示のコマンドは、JSON または XML 記述子を使用して引き続き使用できます。