workbenchでコマンドを作る
workbenchにコマンドを作ってみた。ベンダーはfutariでAwkというサービスプロパイダーが既に作られている場合、以下のようになる。
php artisan command:make AwkCommand --command=awk:shodoku --path="workbench\futari\awk\src\Futari\Awk"
これでworkbench内に「AwkCommand.php」というファイルが生成される。RsearchCommand.php内のfireメソッドを編集すればコマンドが実行できるけど、その前にサービスプロパイダーのregisterメソッドを編集する。
public function register() { $this->app['command.awk.shodoku'] = $this->app->share(function($app) { return new AwkCommand; }); $this->commands('command.awk.shodoku'); }
次にサービスプロパイダーのprovidesメソッドを編集する。
public function provides() { return array('command.awk.shodoku'); }
AwkCommand.phpにnamespaceを追加する。
<?php namespace Futari\Awk; use Illuminate\Console\Command; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputArgument; class AwkCommand extends Command {
これでphp artisanを実行すればコマンドawk:shodokuが表示される。
php artisan awk:shodoku ""
でコマンドの試し打ちができる。オプション設定がデフォルトのままなので空引数を渡している。