主旨
teratailっていうエンジニア同士の助け合いサイトでPHPの質問をウォッチしています。
質問を見ていて思うのは、ちゃんとした開発環境を構築できさえすれば、こんなつまらない質問を起こさなくて済むんじゃないかなっていう、素朴な疑問です。
例えば、全角空白を記入しているのに気づかず文法エラーなどを起こしているとか。
例えば、変数名のタイプミスでデータの引き回しに失敗しているとか。
その手のしょーもない質問を起こさなくても自己解決するためには、開発支援が充実している統合開発環境(IDE: Integrated Development Environment)の導入が大事なんじゃないかと思えてくるのです。
なので、ネットで見聞きしている開発環境を、さっくり簡単にまとめておこうかと思います。
メジャーどころ3種
PhpStorm
PhpStorm: Lightning-Smart IDE for PHP Programming by JetBrains
JetBrains って会社が作っている開発環境が PhpStorm というもので、執筆当時本来年間89.0USD今なら年間44.5USDでフル機能を使うことができますし、Java開発のIntelliJ IDEAというのも超有名です。
日本の代理店はサムライズムさんがやっておられて、英語のページで購入手続きせずとも日本語で対応していただけます。
PhpStormの強力なエディタはコード補完、リファクタリング、コード分析、ナビゲーション、デバッガ、ユニットテストなど豊富な機能を備えています。またSQLや様々なバージョン管理システムと連携できるだけでなく、HTML、CSS、JavaScript、XMLなどの編集において優れたユーザーエクスペリエンスをもたらすプロ用のPHP IDEです。
NetBeans IDE
NetBeans NetBeans 日本語サイト
オープンソースの統合開発環境 (IDE) として有名。 JavaもPHPもwebページもこいつ一つで開発できる。 Javaで開発されている。
NetBeans IDE - PHP開発の面では、有名所のPHPフレームワークもサポートしており、XDebugを使用したリモートデバッグも可能。
Eclipse
Enabling Open Innovation & Collaboration | The Eclipse Foundation
Pleiades - 日本語化プラグイン Eclipse, IntelliJ, PhpStorm...
Pleiadesにもお世話になりました。 NetBeansよりも先にある、こちらもオープンソースの統合開発環境 (IDE)。 JavaもC++もPHPもPythonもいける開発環境。
PHP開発面では、Windows向けにはXAMPPというweb開発に必要なもの(webサーバapache httpdやデータベースmysqlなど)が一通りパッケージ化されたものも含んでいて、これ一本ですぐに始められる(ってほど生易しいものではないけどね)のも特徴。 もちろんXDebugを使用したリモートデバッグも可能。 PHPフレームワークへの対応もできる。
この中では、なんとなくNetBeans IDEを使ってきたかもだ
PhpStormが有償のソフトなので体験すらしてない。 なので、NetBeans v.s. Eclipseってなっちゃう。 どっちも使った。 ほんの少しの差だけどNetBeansの方が反応が良かった気がして、仕事パソコンにはNetBeansを入れている。 FuelPHPを組むときはNetBeansでやってる。
Pleiadesで配布している「全部入り日本語化Eclipse」はとっつきやすそうだけど、あまりにあれこれ入りすぎていて、含まれるソフトのどれかをバージョンアップするときに困りそう。 そうそうソフトウェアを入れ換えるなんてことはしないと思うけど、開発環境を立ち上げましょう的な記事でPleiades推ししてるのをあまり観たことがないのもあり。 PHP開発しましょ、っていう前に先にWebサーバーをローカルで立てましょうってのがあって、phpのコードを書き出すときにエディタや開発環境のことに触れている記事が少ない気がするし。
どちらも、プラグインなどが更新されると自動で探してきてインストールする流れになるので扱いやすいのだけど、XAMPPのことまでは面倒見ないのでそっちはそっちで別途管理するなら含まなくていいじゃんって気もする。 なのでXAMPPを先に立ち上げておく(もしくは別途apache httpdとphpを集めてきて自分で組み込むとか)方がいい気がする。
プログラミング向きなエディタ各種
Atom
Atom
オープンソースでカスタマイズ次第でいろいろ化けるエディタ。 使ってないからよくわからない。
PHPプログラマーのためのAtomパッケージ5選 | IT CARETのようにphp開発に特化したパッケージを追加していけば、Javaで開発されたIDEらよりも小気味よく使えるかもしれない。
atomでPHPのデバッグ - QiitaのようにAtomからリモートデバッグもできちゃう。
Brackets
Brackets - Web デザインを認識する最新のオープンソースコードエディター
こちらも方向性としてAtomと似てるかも。 使ってないからよくわからない。
Brackets おすすめエクステンション集・解説 - Qiitaによると、PHP開発向けエクステンションもいくつかある模様。
BracketsでPHPデバッグがサクサク捗る!PHP debuggerの設定方法 | Arrownによるとリモートデバッグもできちゃう。
Sublime Text
Sublime Text - A sophisticated text editor for code, markup and prose
PythonベースのプラグインAPIを備えたエディタ。 使ってないからよくわからない。
PHPerが使うSublime Text 3のパッケージ | Go-NextブログのようにPHP開発向けパッケージもあります。
【SublimeText3】Apache+PHP+Xdebugでデバッグ - Qiitaのようにリモートデバッグもできちゃう。
何を使ってもいいんだけどね
文法に沿ったカラー表示をしてくれるかどうか、文法エラーを検出して指摘してくれるかどうか、一度も使用していない変数名を指摘してくれるかどうか、今入力しようとしているコードを類推して提案してくれるかどうか、コードをステップ実行できるかどうか、みたいなところを担保している開発環境を作らないと、いつまで経っても初心者の域から出られないと思うんだよね。
つまらないミスは往々にして発生しがちで、睡眠不足など体調不良があったり、あるいは何かの片手間に取り組んでいたりすると注意力不足集中力不足でミスを発見できずにドハマリしてしまいかねない。
そういうときに直すべきところを指摘してくれる開発環境は非常にありがたい存在で頼れる存在になる。
いちいち teratail とかでこっ恥ずかしい質問を起こさなくて済むし。 こっ恥ずかしい質問は周りにも迷惑をかけるということを意識してほしいと思うわけで、他人を巻き込んでつまらないミスで振り回すと時間がもったいない。 ここまでやった、やりきった、けどわからない、助けてほしいっていうのであれば、話だけでも聞くよと。
その他
XDebugって何?って人は、phpコードをステップ実行して変数の中身を確認しながらデバッグするために昔から重宝されているものなので、テスト環境で使えるように設定変更を最優先でやっとくよいいよ。 参考記事:PHP開発者がいまさら聞けない、Xdebugの基礎の基礎 - WPJ
phpの文法チェックができるwebサービスが「PHPコードの構文チェック」にありますけど、開発環境で一発でできるようにしておいたほうが良いですよ。
phpをコマンドラインから使えるようであれば、「php -l ~~~.php」(小文字のエル)とすることで文法チェックができるよね。詳しくは:「PHP: オプション - Manual」