ときどき忘れるので書いておく。
Commandの基本
yii\console\Controllerを拡張したコントローラーに”action”で始まるpublicな関数を書くと、そこがコマンドのエントリポイントになる。
namespace app\commands;
use yii\console\Controller;
class HelloController extends Controller
{
/**
* 文字列を表示する
* @param string $message 表示する文字列
*/
public function actionIndex($message = 'hello world')
{
echo $message . "\n";
}
/**
* 文字列を2回表示する
* @param string $message 表示する文字列
*/
public function actionTwice($message = 'hello world')
{
echo $message . $message . "\n";
}
}
このコードをコマンドから動かすには、プロジェクトディレクトリに移動してから、コントローラー名を引数で指定する。
actionIndexはデフォルトの関数で、actionを指定しないときに参照される。
php ./yii hello
actionを指定するときは/(スラッシュ)に続けてアクション名を書く
php ./yii hello/twice
2語以上からなるコントローラー名
例えば SitemapGeneratorController のような、2語以上からなるコントローラー名の場合は間にハイフンを入れる。
php ./yii sitemap-generator