CakePHP 5でコマンドを作成するには、Command
クラスを継承したカスタムコマンドを作成し、bin/cake
コマンドで実行できるようにします。以下に、CakePHP 5でカスタムコマンドを作成する手順を示します。
手順
-
コマンドの作成
コマンドファイルは、src/Command
ディレクトリに作成します。例として、「HelloCommand」というシンプルなコマンドを作成してみます。
src/Command/HelloCommand.php
-
コマンドクラスの作成
以下のように、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!
というメッセージを表示します。
-
-
コマンドの実行
ターミナルから以下のコマンドで実行します。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でコマンドの作成ができるようになります。