PMMPプラグインをPhpStormでパパっと書こう!

昨日ひさしぶりにPHP書いたら吐きそうになりました。
今日の物理の試験中この影響でずっと頭が痛かったです
そこで思ったのが、~~よくみんな普通のテキストエディタで書いてて頭おかしくならないな…~~
もちろん、そういったエディタにもメリットは沢山あります
PhpStormはJVM上で動いてるので、スペック低いPCだとイライラするかもしれません
対して、こういったエディタはめちゃくちゃ軽いです(WF上で動くAtom, VS Codeは悪しからず…)
プラグイン次第では、IDEよりも軽くてIDEよりも多機能な最強エディタにも成りえます
**でも僕は今すぐ楽をしたいんです!**

そんなわけで、PhpStormでPMMPプラグイン作る記事をつくりました

use文をいちいちコピペしたり、syntax errorで何度も見直すのはもうやめよう!  
**できるPMMPプラグイン開発者ならPhpStormで賢く書こう!**

# PMMPプラグインをPhpStromで作る

PhpStormをダウンロードして、起動しよう
学生なら、国際学生証を発行すれば無料で使える!

![スクリーンショット (10).png](https://qiita-image-store.s3.amazonaws.com/0/166136/5d9bc704-2851-9fa5-63f7-59f96e269722.png)

右下の  
Configure -> Settings -> Languages & Frameworks -> PHP を選択  

<img width="694" alt="スケッチ1.png" src="https://qiita-image-store.s3.amazonaws.com/0/166136/5ded253b-a8ee-4820-4e1b-07932960e950.png">

PHP language levelを7.2に、
CLI InterpreterでPMMPのデータフォルダの中のbin/php/php.exeを選択し、右下のOKを押す

前のWindowに戻ったら、New Projectを選択

![スクリーンショット (11).png](https://qiita-image-store.s3.amazonaws.com/0/166136/cb6310ba-eef3-b09d-b334-54a407f4bb95.png)

右でPHP Empty Projectを選択し、左でプラグインを作る場所を指定する

さて、今回は楽にPMMP本体のデータをライブラリとして認識させるために、Composerを使う。
プロジェクトWindowが表示されたら、プラグインを作る場所にcomposer.jsonを生成
中身はとりあえずこんな感じでいい

![スクリーンショット (12).png](https://qiita-image-store.s3.amazonaws.com/0/166136/c48b6176-a399-3af0-8f40-c4923b15a339.png)

上のツールバーのFile -> Settings -> Languages & Frameworks -> PHP -> Composer を選択
「Path to composer.json」には先程作ったcomposer.jsonを指定、
下のExecutionは「composer.phar」と「Download composer.phar from ...」を選択しよう  

![スクリーンショット (14).png](https://qiita-image-store.s3.amazonaws.com/0/166136/ae026dcb-e074-e36f-b2da-b925279c3f6f.png)

OKボタンを押して、前の画面に戻ったら上のツールバーから Tools -> Composer -> Update を選択しよう

![スクリーンショット (7).png](https://qiita-image-store.s3.amazonaws.com/0/166136/202d8215-ddef-1c7b-b7b1-2e5da8dc26f1.png)


しばらく経つと、vendorフォルダが生成される。ここにPocketMine.pharを入れると、PMMP本体をライブラリとして認識してくれる

後はいつも通りプラグインを作っていく

驚くことに、PhpStormは、

![スクリーンショット (8).png](https://qiita-image-store.s3.amazonaws.com/0/166136/df0e9604-d853-eda9-6ced-5b8520ccd761.png)

こんな感じや、

![スクリーンショット (9).png](https://qiita-image-store.s3.amazonaws.com/0/166136/f4d6df30-4a6c-3cd9-0e44-9eadc63b82bc.png)

こんな感じにコード補間や、エラーの指摘もしてくれるのだ! 
use文も自動で書いてくれる!

**素晴らしい!**
# PhpStormだとどんな事が他にできる?


![スクリーンショット (15).png](https://qiita-image-store.s3.amazonaws.com/0/166136/7e2145df-8226-df50-b231-cd25fbe10d36.png)

![スクリーンショット (16).png](https://qiita-image-store.s3.amazonaws.com/0/166136/855aa2d0-a5e4-151b-cb8f-004da6e7eb0d.png)

メソッドやクラスの定義を見にいける

![スクリーンショット (17).png](https://qiita-image-store.s3.amazonaws.com/0/166136/a417e6df-f229-5b3d-aa18-388cdf9dfa77.png)

継承関係確認できる

などなど

# せっかくだから、Composerでなにかライブラリ入れてみる
Composerは、本来はライブラリ管理ツール。試しに何かライブラリ入れて動かしてみる。
PhpStromでのComposerの詳しい使い方は[**ここ**](https://qiita.com/pakiln/items/22f4b86501f78a21d34f)(丸投げ)
~~ところで、PMMP本体がComposer使ってるのに、PMMP自体はPackagistにないってやばくない？~~

##reactivex/rxphp
ReactiveXシリーズのPHP版。
ReactiveXは、簡単いうとデータ量が無限の配列(ストリーム)を簡単に扱えるようにしたもの。

https://packagist.org/packages/reactivex/rxphp

![スクリーンショット (19).png](https://qiita-image-store.s3.amazonaws.com/0/166136/9c15f172-13e4-b602-8873-08fe49603bd5.png)

右上の三角のボタンを押せばすぐに実行できる。![スクリーンショット (19).png

実行すると、一秒おきに1,2,3と表示される