ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

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 ""

でコマンドの試し打ちができる。オプション設定がデフォルトのままなので空引数を渡している。