Redmine
PHPUnit
PhpStorm
docker
JetBrainsDay 24

PhpStorm&Dockerで最強のphp開発環境を作ろう!(後半)

前回のおさらい

前回は、

  • PHPのDocker環境を作る
  • PhpStormでPHPをコマンドラインで実行&デバッグ
  • PhpStormでPHPをブラウザで実行&デバッグ

までやりましたね!
次はテストコードの実行、タスク管理ツールとの連携という実践的な内容について学んでいきます。

PhpStormでPHPUnitを実行してみよう

テストコード実行

tests/フォルダ配下のテストしたいファイルやフォルダを右クリックしてRUNするとテストが実行されます。
PhpStormがソースコードを見てこれはテストコードだと判断したら、PHPUnitで実行してくれます。それもdocker上のPHPでですよ!(まぢStormは気が利くね~)
image.png

テスト結果はこんな感じです。
image.png

テストコードをステップ実行

テストコードにbreak pointをつけて、虫アイコンをクリックします。
image.png

break pointで無事止まってくれました。
image.png

ここでDebugのすごいとこを紹介!STEP実行で気になる行まで移動して、その時の変数をvar_export形式(ソースに貼り付けたらすぐ使えるね!)やjson_encode形式でコピーしてくれるんですよ!どんだけ気が利くヤツなんだ!!
image.png

カバレッジ計測

今度は虫のとなりのメッシュなアイコンをクリックします。
image.png

こんなんが表示されます。詳しくは使って実感してください。
image.png

xdebugによるprofile

ちょっとしたprofileなら、xdebugを使ってこんな感じでやってくれます。XHProfみたいだったら最高なんだけど、そこまでじゃありません。。
image.png

PhpStormでDocker上のMySQLにアクセスしてみよう

こんな感じで接続をつくってやります。
image.png
はじめての時は、mysqlドライバをダウンロードしてみたいなのがでるので、それをクリックしてインストールしてください。赤枠に注意して入力し終わったら[Test Connection]をクリックしてテストが通ったら、OKしてください。
passwordはoneforallallinoneです。
image.png

こんな感じでいろいろできます。
image.png

テーブル表示されたデータは、CSV・TSV・SQL形式はもちろんカスタマイズすればbulk-insertのSQLでダンプとかPHPの配列形式でダンプなどいろんな形式で出力できてとっても便利です。

PhpStormでGit&Redmineの連携をしてみよう

PhpStormの簡単なGit連携

まだGitと連携されていない場合は、VCSのEnable Version Control integrationでGitを選びます。
image.png

するとこのようにGitをPhpStormで簡単に操作できるようになります。
image.png

Redmineの準備

まず、RedmineのDockerをGitで取ってきましょう

githubからRedmieを取ってくる&起動
$ cd /c/Users/your_account/PhpstormProjects
$ git clone https://github.com/albyte/docker-redmine.git
$ cd docker-redmine
$ docker-compose up -d

しばらく待って、下記にアクセスするとログイン画面が表示されますので、ID/PWを入れます。
image.png

http://localhost:8888/
ID/PW  admin / admin

その後新しいパスワードがどうだこうだ聞かれますので、適当に入力して進めます。

チケットが発行できるようにロールとステータスとトラッカとワークフローや優先度とかいろいろをざっくり設定します。
なんか面倒なので、省略。。

適当なプロジェクトを作ってやります。
image.png

適当なチケットを発行します。
image.png

PhpStormとRedmineを連携させる

PhpStormのtask設定をします。
image.png

作成されるブランチ名を入力します。
image.png

こんな感じでチケットからtaskとbranchとchange listが作成されます。
image.png

Git連携だけでも十分便利ですが、task連携するとなんというか火打ち石からライターのような感動が待ってます。

便利なplugin

pluginインストール方法

SettingsのPluginsでいろいろあるので、探してみてください。
image.png

おすすめplugin

Grep Console

  • logをtail -fできるぞ image.png

BashSupport

  • case ... esacとかファンキーな構文がムカつくけど、ちょっとしたプログラムはやっぱbashだよねってあなたへ image.png

PlantUML diagramming tool integration

  • UIの設計や各種UMLまでmarkdownでかけちゃうYO!
  • gitで差分も分かるし、ドキュメントはオールmarkdownだね~ image.png

おわりに

いままでEclipseやNetBeansを使ってましたが、今年の春くらいにPhpStormに出会い、うわ!英語じゃんって毛嫌いしてましたが、思ったよりすぐ慣れてStormの虜になりました。
PhpStormとDockerとの連携については、まだまだ不満もありますが、この前docker-composeに対応してくれてますます便利になりました。
ほんとPhpStormさいこー!

P.S.

ほんとはSlim3でも使ってちゃんとしたサンプルを用意したかったのですが、年末は何かと忙しいので、最後のほうは文章も含めかなりテキトウなことになってしまいました。。
全然最強じゃないじゃん!むしろ最弱じゃん!って思われたかた、期待させてごめんなさいm(_ _)m