- 前回のおさらい
- Synfonyのconsoleからカスタムコマンドを実行できるようにする
- SymfonyのコンソールをPHPStormに設定する
- Composerのワーキングディレクトリを変更する
- コマンドラインからスクリプトを実行できるようにする
前回のおさらい
前回は、PHPStorm上にSymfonyをインストールし、Githubでソースコードを管理できるようになるところまでやりました。
Synfonyのconsoleからカスタムコマンドを実行できるようにする
PHPStormからはてなブログをいろいろと操作してみる試み第二弾。今回は、独自に書いたスクリプトをSymfonyから実行できるところまでがんばりたいと思います。
SymfonyのコンソールをPHPStormに設定する
PHPStormには、Composer同様、Symfonyのコンソールはパスさえ指定すれば動くようにバンドルされているので、 設定します。
コマンドラインツールに、s about
とうつことで、環境情報が見えるようになりました。
Composerのワーキングディレクトリを変更する
IDEのルートではなく、git配下でComposerを動かしたいので、PHPStormのComposerのパスに、---working-dir=<PATH_TO_WORK_DIR>
を書いておきます。
C:\xampp\php\php.exe D:\documents\MyWorks\HatenaBlog\composer.phar --working-dir=D:\documents\MyWorks\HatenaBlog\phpstorm-hatenablog-client
コマンドラインからスクリプトを実行できるようにする
ドキュメントを参考に、コマンドラインから独自でかいたスクリプトを実行できるようにしました。 Synfonyでは、指定のルートに配置すると自動的にサービスとして登録されて、各所で使えるようになるんですね。
これを、srs/Command 以下に配置。
<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; /** * Class FetchHatenaBlogEntriesCommand * @package App\Command */ class FetchHatenaBlogEntriesCommand extends Command { protected static $defaultName = 'app:fetch-hatena-blog-entries'; public function __construct() { parent::__construct(); } /** * {@inheritdoc} */ protected function configure() { $this ->setDescription('fetch HatenaBlog entries'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int|null|void */ protected function execute(InputInterface $input, OutputInterface $output) { echo 'do something.' . PHP_EOL; } }
で、実行。s app:fetch-entries
とコマンドラインから打ちます。
> C:\xampp\php\php.exe D:\documents\MyWorks\HatenaBlog\phpstorm-hatenablog-client\bin\console app:fetch-entries do something. Process finished with exit code 0 at 14:16:47. Execution time: 4,849 ms.
「do something.」と表示できました。とりあえず、ここにいろいろと書いていきましょうか。
今回は、ここまで。次回は、HatenaBlogのAPIにアクセスするためのパスワードを設定ファイルとして配置し、スクリプト上から参照できるように頑張りたいと思います。