PHPStormでできることをざっくりまとめました。

# はじめに
今年からPHPStormを使い始めました。
使う前はVisual Studio Codeを使用しておりましたが、PHPStormに移行してしまいました。
簡単ですが、できることやプラグインについてまとめました。

# PHPStormとは
- JetBrains社が販売しているPHPのIDE（統合開発環境）です。
- PHPの主要なフレームワーク（Symfony、Laravel、Drupal、WordPress、Zend Framework、Magento、Joomla!、CakePHP、Yii）に対応しています。
- また、PHP以外にもフロントエンドの開発（HTML5、CSS、Sass、Less、Stylus、CoffeeScript、TypeScript、Emmet、JavaScript）もサポートしています。
- エディタの機能以外にも、バージョン管理、データベースクライアント、Dockerやコンソール、REST Clientといったツールも統合されています。
- Widnows, Mac, Linuxといったクロスプラットフォームで使用できます。

# マニュアル
- [日本語マニュアル](https://pleiades.io/help/phpstorm/quick-start-guide-phpstorm.html)が公開されていますので、基本的にここを見ておけば大丈夫かと思います。
- ショートカットの一覧がPDFとして公開されているので、手元において参照しながら使用してもよいかと思います。
  - [Windows & Linxuショートカット（PDF）](https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_phpstorm_windows.pdf)
  - [Mac版ショートカット（PDF）](https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_phpstorm_mac.pdf)
- 英語ですが、[動画でチュートリアル](https://www.jetbrains.com/ja-jp/phpstorm/documentation/)があるので、参考にどうぞ

# さっくりできることのまとめ
## エディタとして使用する（当たり前）
- PHPやPHP以外のフロントエンドの開発で使用できます。
  - IntelliSenseが有効なので、他のエディタに戻れなくなりました。

## DBクライアントとして使用
- 元々、[Sequel Pro](https://www.sequelpro.com/)を使用していましたが、PHPStormにもデータベースクライアントがビルトインされているということで、使用し始めました。
- 結構便利で、SQLのIntelliSense以外にも、テーブルをJOINする際の候補も表示してくれるので、メインで使用するようになりました。
- 他にもSelectの結果をCSV, HTML, JSON, マークダウン, XMLなどの形式にコピペできるので、ログを残すときには便利です。
- 現状MySQLメインで使用していますが、他にも以下のDriverが用意されています。
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/449f06b2-b61f-8ddb-cca2-aa49810cc3b5.png" width=500 />

## Gitクライアントとして使用
- コンソールでのGit操作がメインですが、たまにGUIを使用したいなと思ったときに使用しています。
- ソースコードの変更履歴はもちろんのこと、Gitログの参照やGUIでGit操作ができます。

## コンソール
- SSHでサーバー接続するときやコマンド操作するときに使用しています。
- タブで複数のコンソールを起動できます

## Dockerの操作
- 起動中のDockerコンテナにアクセスでき、ログやImageのプロパティ、環境変数、ポートやボリュームのバインディングを確認できます。
- コンテナに対して、起動/停止、Execといった操作ができます。

## メモ書き
- PHPStormにはスクラッチファイルという仕組みがあります。
- プロジェクトにScratches and Consolesというフォルダがあり、その中にScratchesというフォルダがあります。
- Scratchesのフォルダにマークダウンのメモやスクリプトなどを保存しておくことができます。
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/1d79d546-4585-e702-e737-8bce2de16d9c.png" width="500" />

- スクラッチファイルには以下、種類のファイルを作成できます。
  <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/78376d04-5bf3-377b-be9c-4ad38196c4d0.png" width="500" />

# 使用しているプラグイン
## Japanses Language Pack / 日本語言語パック
  - PHPStormのUIを日本語化するプラグインです。
  - JetBrainsが提供しています。
  - 英語に苦手意識がある方はインストールしておくとよいかと思います。

## Key Promoter X
  - PHPStormのショートカットキーを通知してくれるプラグインです。
  - IDEでの操作でショートカットキーが割り当てられている操作をマウス等で行ったときに通知（以下）がきます。
  ![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/5bc2a06b-6c7f-3630-bf87-49ad1b4e53e9.png)

## Find Pull Request
  - ソースコードの変更がされたPRを表示するプラグインです。
  - コード上でメニューを表示すると、 `Find Pull Request` が表示されるので、選択するとPRを表示できます。
  ![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/e3f15938-8bec-ae36-76ec-89e7e38c7770.png)
  - また、コードの行数表示あたりでメニューを表示すると、 `List Pull Requests` が表示されます。
  ![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103774/bf9cf249-85e6-cc1c-2d88-99508ee9f4c9.png)
  - `List Pull Requests` を選択すると、コードの左側にPRの番号が表示されます。番号をクリックすると該当のPRを表示できます。

## Rainbow CSV
  - CSVの列ごとにカラフルにして、見やすくできるプラグインです

## Laravel周り
  - 以下の記事のプラグインをインストールして使用しています。
    - [Laravelを使って開発をするときに入れておきたいPhpStormのプラグイン](https://qiita.com/makies/items/e13b36c449905b2b46cb)


# まとめ
まだ使い始めて間もないですが、PHPStormの便利さにハマりつつあります。
GitクライアントやDBクライアント、Dockerを操作するのに一つで事足りてしまいました。
引き続き、PHPStormを使いつつ便利さにハマっていこうと思います。