CakePHP Shellの作成

cakePHPを用いて動くshellを作ることができる。
srcs/Shell以下にHelloShell.phpファイルを作成し、以下のように記述する。

namespace App\Shell;

use Cake\Console\Shell;

class HelloShell extends Shell
{
    public function main()
    {
        $this->out('Hello world.');
    }
}

これを保存し、コンソールにて

$ bin/cake hello
$ Hello world.

このようにHello worldと出力するシェルが出来た。bin/cake nameで実行すれば Shellを継承しているNameShellという名前のクラスのmain関数が呼び出される仕組みになっている。また、引数なしの場合はこのようにmain関数が呼ばれるが任意の関数をコンソールから呼び出すこともできる。

namespace App\Shell;

use Cake\Console\Shell;

class HelloShell extends Shell
{
    public function main()
    {
        $this->out('Hello world.');
    }

    public function heyThere($name = 'Anonymous')
    {
        $this->out('Hey there ' . $name);
    }
}
$ bin/cake hello hey_there haruto
$ Hey there haruto

コードはすべて公式ホームページを引用している