PhpStormとEclipse PDT両方を9ヶ月使ってみた比較

約9ヶ月の間、
社員はPhpStorm(Intellij)、アルバイトはEclipse PDTで
phpプロジェクトの開発作業を継続した結果、
弊社のphp開発のメインIDEをPhpStormにすることにした。

元々自分が最も得意とする言語がJavaであったため
Eclipseの良さを知っていたし
以前cakePHPのプロジェクトでもEclipse PDTで開発していたので
PhpStormとEclipse PDTで開発効率にどのような差があるのか気になっていた。
そして9ヶ月間使ってみたところ、
開発効率に大きな差があることがわかってきた。

1.検索が高速

phpの開発、特にSymfony2の開発では
プロジェクト内を1日に100回程度はキーワード検索を行うが、
その待ち時間がEclipse PDTに比べ1/10程度の待ち時間で可能になる。
phpの開発においてプロジェクト内のキーワード検索は命綱と言えるので
検索速度の差は開発効率に大きく影響してくる。

2.コーディング支援・静的解析が強力

Eclipse PDTを使って開発していたアルバイトの開発作業におけるミスを精査したところ、
約40%以上はPhpStormを利用していれば防ぐことができたミスだった。
例えば、現状のEclipse PDTではクラス内で使用したクラスのuse定義忘れが発生し易い。
PhpStormではuse定義されていないクラスは全てエラーとして通知され、
use定義もALT+ENTERで一瞬で可能だ。
また、phpDocsで変数の型を定義しておくことで
IDE上で変数の型チェックが働くようになるが、これもEclipse PDTに比べ、より型認識の精度が高い。
全体的にPhpStormのコーディング支援・静的解析はEclipse PDTに比べ強力なようで、
より多くのエラー発生箇所、若しくは発生の可能性が高い箇所を通知するので
従来、開発してから翌日自動テストによってエラーに気付き修正を行い、
計2日かかっていた開発作業が半分の1日で可能になり、工数の短縮に大きく貢献した。

3.リモートデバッグ、リファクタリング可能且つ軽快

テキストエディタでなくIDEで開発を行うのは
リモートデバッグやリファクタリングを行いたいからだ。
PhpStormはその両方を実装しながら、それらの動作を含め
Eclipse PDTよりもかなり軽快に動作する。
また、PhpStormはリファクタリング実行時に自動的に関数名を文字列検索するなどして
リファクタリングの影響が及ぶ可能性がある箇所を最大限通知してくれるなど、
機能自体もEclipse PDTに比べ便利に使える。

これらの差が無視できないほど大きく
リファクタリング前提でphpの大規模システムを開発していく上で
PhpStormはなくてはならないIDEであるという判断に至った。

この他にgit連携の機能やphpUnitの機能なども充実しているらしいので、
これらの機能についても機会を見て検証していきたい。