2. テスト用のCommandクラスを作成してみる。
今回はデータベース登録処理スクリプトを作成する前に、引数に入れた名前に対して、
“Hello hogehoge”と出力する簡単なコマンドスクリプトを作成し、COMMANDクラス
の動作を確認します。
まず、作成されたバンドルのディレクトリに移動し、その直下に”Command”というディレクトリを
作成します。
コマンドラインから実行されるスクリプトはここに置くことになっています。
1 2 |
$ cd src/My/DBCommandBundle/ $ mkdir Command |
次にCommand配下に”PersistCommand.php”というファイルを作成し、以下の内容を
記述して保存します。
1 |
$ vi Command/PersistCommand.php |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
setName('dbcommand:persist') ->setDescription('Persist Name') ->addArgument('name', InputArgument::OPTIONAL, 'Who do you want to greet?') ->addOption('yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters') ; } protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $text = 'Hello '.$name; $output->writeln($text); } } protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $text = 'Hello '.$name; $output->writeln($text); } } |
上記PHPスクリプトの16行目の以下の部分がコマンドの実行コマンド名になります。
1 |
->setName('dbcommand:persist') |
なので、このスクリプトを実行する際はsymfony2のトップディレクトリに戻り
以下のように実行します。
1 2 |
$ php app/console dbcommand:persist Ho-gehoge Hello Ho-gehoge |
これでこのコマンドが正常に動くことが確認できました。