1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CakePHP 5でコマンドを作成する方法:HelloCommandの実装

Posted at

CakePHP 5でコマンドを作成するには、Commandクラスを継承したカスタムコマンドを作成し、bin/cakeコマンドで実行できるようにします。以下に、CakePHP 5でカスタムコマンドを作成する手順を示します。

手順

  1. コマンドの作成
    コマンドファイルは、src/Commandディレクトリに作成します。

    例として、「HelloCommand」というシンプルなコマンドを作成してみます。

    src/Command/HelloCommand.php
    
  2. コマンドクラスの作成
    以下のように、HelloCommandクラスを作成します。

    <?php
    declare(strict_types=1);
    
    namespace App\Command;
    
    use Cake\Console\Arguments;
    use Cake\Console\Command;
    use Cake\Console\ConsoleIo;
    
    class HelloCommand extends Command
    {
        /**
         * コマンドの実行内容を定義します。
         *
         * @param \Cake\Console\Arguments $args 引数オブジェクト
         * @param \Cake\Console\ConsoleIo $io コンソール出力用オブジェクト
         * @return void
         */
        public function execute(Arguments $args, ConsoleIo $io): void
        {
            $io->out('Hello, CakePHP 5!');
        }
    }
    
    • executeメソッドの中に、コマンドが実行された際の処理を記述します。この例では、Hello, CakePHP 5!というメッセージを表示します。
  3. コマンドの実行
    ターミナルから以下のコマンドで実行します。

    bin/cake hello
    

    実行すると、以下のように出力されます。

    Hello, CakePHP 5!
    

コマンドのオプションや引数の追加

引数やオプションを追加する場合、executeメソッドの中でArgumentsオブジェクトを使用して取得します。

public function execute(Arguments $args, ConsoleIo $io): void
{
    $name = $args->getArgument('name') ?? 'CakePHP 5';
    $io->out("Hello, {$name}!");
}

注意点

  • コマンド名をカスタマイズするには、クラス名を適切に変更してください。
  • コマンド実行時の例外やエラーハンドリングをtry-catch構文で追加すると、エラー時の処理が明確になります。

これで、CakePHP 5でコマンドの作成ができるようになります。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?