PHP に関するこのシリーズの記事を書くことで、PHP 開発者の世界をより深く理解できるようになりました。私は多くの PHP プログラマーと話をしましたが、最も驚いたのは、IDE を使用しているプログラマーがいかに少ないかということです。ほとんどのプログラマは、Microsoft® Windows® 上のメモ帳、Emacs、または Vim などのテキスト エディタを使用します。
私が言及したテキスト エディター (および言及しなかったテキスト エディター) はすべて優れています。どのエディターが優れているかについて議論するつもりはありません。ただし、テキスト エディタを使用しない方が、PHP コードをより深く理解できることを強調したいと思います。ほとんどの人は、PHP プロジェクトをファイルのディレクトリにすぎないと考えています (非常に一方的な見方です)。ここで、皆さんを IDE の世界に連れて行き、IDE で何ができるのか、あるいは何をすべきなのかを示し、最も人気のある IDE を 7 つ紹介します。
IDE とは何ですか?
つまり、IDE はコーディング作業のワンストップ サービスを提供します。 IDE には、コードの編集、コードのデバッグ、ブラウザー (通常は埋め込み) でのコードの表示、ソース管理のチェックインおよびチェックアウトを行うことができるエディターが含まれています。これらの機能をサポートするために、IDE にはメモ帳や Vim などの基本エディターにはない一連の機能が備わっています。もちろん、エディターを拡張してこれらの機能を実現することもできますが、IDE にはこれらすべてが 1 つの合理化されたパッケージに含まれており、すべて事前構成されています:
プロジェクト
IDE の重要な機能は、PHP アプリケーションを単なるファイルのセットではなくプロジェクトとして扱うことです。この概念 (プロジェクト) は、ソース管理構成、デバッグ用のデータベース設定、特定の主要ディレクトリの場所などの追加情報を維持します。
デバッグ
もう 1 つの便利な機能は、統合されたデバッグです。この機能を使用すると、エディターにブレークポイントを設定でき、PHP インタープリターはこのスクリプトに到達すると停止します。ブレークポイントから開始して、ローカル変数の値を検査し、コードの問題を診断できます。コード内で echo ステートメントを使用して値を確認することも、エラー ログを使用して変数の値を取得することもできます。
コードインテリジェンス
PHP は非常に規則的なプログラミング言語であり、単純なパターンに従います。これらのパターンにより、コードの記述が容易になるだけでなく、IDE によるプロジェクト内のコードの検査も容易になります。さらに、検査結果を表示することでプログラムの作成を支援します。たとえば、プロジェクトに MyClass という名前のクラスが定義されている場合、キーワード new を入力すると、IDE はすぐに MyClass をオプションとして含むポップアップを表示します。そのタイプのオブジェクトが使用されると、IDE は使用可能なメソッドとインスタンス変数を表示します。関数コマンドの入力を開始すると、IDE に使用可能なパラメータが表示されます。公平を期すために言うと、これがテキスト エディタではなく IDE を使用すべき最大の理由です。この種のコード インテリジェンスにより、クラス名、メソッド名、パラメーターの入力ミスを効果的に減らすことができます。
クラスビュー
IDE のコード インテリジェンス エンジンのもう 1 つの機能は、IDE がプロジェクトのクラス ビューを生成できることです。ファイルを表示する代わりに、システムは、定義されているさまざまなクラスを、クラスが置かれているファイルに関係なく表示します。クラスをクリックすると、エディターは対応するファイルにアクセスし、対応するクラス、メソッド、またはインスタンス変数を表示します。これは、大規模なプロジェクトをナビゲートするための優れた方法です。
多言語サポート
ここで説明する各 IDE は、PHP をサポートするだけでなく、JavaScript、構造化照会言語 (SQL)、ハイパーテキスト マークアップ言語 (HTML)、およびカスケード スタイル シート (CSS) などの関連言語セットもサポートします。 HTML と CSS は比較的単純なので、IDE によるこれらのサポートが最適です。 JavaScript のサポートでは構文が強調表示されることがよくありますが、サポートしないよりはサポートしたほうがよいでしょう。
ソース管理
ここでレビューする IDE はすべて、ソース管理システムへの接続をサポートしており、プロジェクト内のファイルのバージョンを長期にわたって維持できます。ファイルの特定のバージョンをリリース バージョンとしてマークすると、変更を元に戻す必要がある場合にそのバージョンを元に戻すことができます。ソース管理システムを使用することは、個人で使用する場合でも、チーム環境では非常に重要です。優れたソース管理システムは、ディスクがクラッシュしたとき、または顧客が突然現在のバージョンではなく前のバージョンを必要としたときに役に立ちます。ほとんどの IDE は、両方ともオープン ソース制御システムである Concurrent Version System (CVS) と Subversion をサポートしています。 IDE の 1 つは、商用ソース コード管理システムである Perforce をサポートしています。
FTP/SFTP 統合
ソース管理に関連する機能の 1 つは、サーバー内の最新のコードに FTP を使用することです。これは、FTP クライアントを使用したり、自分でファイルをパッケージ化してサーバーに送信してから解凍したりするよりもはるかに簡単です。
データベースナビゲーション
基本的ではないものの、非常に便利な機能の 1 つはデータベース ナビゲーションです。この機能を使用すると、アプリケーションがアクセスするデータベースを参照し、テーブル名とフィールド名を検索し、クエリ結果を返すことができます。一部のシステムでは、データベース アクセス コードを自動的に作成することもできます。
統合 Web ブラウザ
一部の IDE は統合 Web ブラウザをサポートしており、指定された追加パラメータを使用して編集中のページに直接移動できます。このブラウザは IDE 内でホストすることも、外部から呼び出すこともできます。正直に言うと、私は統合ブラウザの大ファンではありません。コードの編集と結果の表示のために 2 つの別々のアプリケーションを切り替えるのは気にしないからです。しかし、役割があることは知っていますが、使用する必要はありません。
フラグメント
これらすべての IDE で私が見つけた最後の機能は、コード スニペット全体とカスタム コード スニペットのサポートです。スニペットは、入力に対する正規表現の実行、データベースへの接続、データベースのクエリなどの小さなタスクを実行する小さなコードです。
上記は、現在購入済みまたはオープンソースの IDE に期待できるコア機能をまとめたものです。次に、いくつかの人気のある IDE を紹介し、いくつかの IDE イメージを示し、それらがサポートする機能とそのコストについて説明します。
日食
Eclipse 開発プラットフォームには、PHP をサポートする 2 つのプラグインがあります。最初の PHP IDE プロジェクトは Eclipse Foundation プロジェクトでした。つまり、このプロジェクトは Eclipse ライセンスの下でリリースされ、Eclipse Foundation のツールとメソッドを使用して開発されました。
もう 1 つは独自に開発された PHPEclipse です。どちらのプラグインも Eclipse を使用しているため、Windows、Linux®、Mac OS X の 3 つの主要なオペレーティング システムすべてで実行できます。これら 2 つのプラグインだけをダウンロードすることも (すでに Eclipse を使用している場合)、必要なものがすべて含まれているプレハブ バージョンをダウンロードすることもできます。
どちらのプラグインもコア IDE 機能をサポートしています。特に、コード インテリジェンス機能は非常に強力で、必要なときに必要なすべてのクラス、メソッド、およびパラメーターの情報をポップアップして表示できます。
図 1 は、Mac OS X 上で実行されている PHPEclipse を示しています。左側には、プロジェクト内のファイルのプロジェクト ビューがあります。以下は、定義されたすべてのクラスを示すクラス ビューです。真ん中にあるのがコードです。複数のファイルを複数のタブで同時に開くことができます。右側にはデバッグおよび参照パネルがあります。これは、一般的に使用される PHPEclipse ユーザー インターフェイスです。
図 1. OS X 上の PHPEclipse
図 2 は、Eclipse Foundation の PHP IDE プロジェクト プラグインを示しています。
図 2. OS X 上の PHP IDE プロジェクト
違いが分からなくても大丈夫です。 2 つのプラグインは、どちらもコードの参照とインテリジェンス機能を Eclipse プラットフォームに依存しているため、非常によく似ています。 Eclipse プラグイン GUI に一貫性があるのは素晴らしいことです。
特定の Eclipse プロジェクトに閉じ込めるプラグインは見つかりませんでした。あるプラグインを別のプラグインに頻繁に交換できます。限られたテストでは、PHP IDE プロジェクト プラグインの方が統合性が高く、コード インテリジェンス機能のパフォーマンスが速いと感じられるため、このプラグインを好みます。両方のプラグインを試して、どちらがより気に入ったかを確認してください。
これら 2 つのプラグインの欠点は、Eclipse はほぼすべてのプログラミング言語で使用できるため、UI が PHP 用にカスタマイズされていないことです。その結果、Eclipse の用語は当初、やや風変わりなものでした。 Eclipse を初めて使用する場合、これらのプラグインは他の IDE に比べて習得するのが少し難しくなります。ただし、Eclipse をすでに知っている場合は、PHPEclipse または PHP IDE プロジェクトに比較的すぐに慣れることができます。
Eclipse とこれらのプラグインの最大の利点は何ですか? これらは無料、安定性、信頼性があります。ああ、無料だと言いましたね
コモド
次に紹介するのは、ActiveState の Komodo IDE です。この IDE は Windows、Mac OS X、Linux 上で動作し、一般的なオープンソース言語 (Perl、PHP、Ruby) をサポートします。コード インテリジェンス エンジンは非常に信頼性があります。すべての言語インストールをスキャンして、PEAR モジュールなどのカスタム拡張機能を探します。プロジェクト側では、CVS、Subversion、および Perforce との統合をサポートし、コードをサーバーに直接 FTP 転送することもできます。
図 3 は、Windows 上で実行されている Komodo を示しています。左側はクラス ビュー、右側はプロジェクト ビューです。中央の主要な部分はコード ビューです。以下はデバッグ用のブレークポイント、コマンド出力などです。これらのシステムはすべて、必要に応じて UI をカスタマイズできます。
図 3. Windows 上で実行される Komodo
コモドは商用製品です。この記事を書いている時点では、この IDE には Personal Edition (US$29.95) と Professional Edition (US$299.95) の 2 つのバージョンがあります。そのユニークな機能の 1 つは正規表現デバッガーです。正規表現を初めて使用する場合でも、すでに高度な正規表現機能に手を出し始めている場合でも、この投資には十分な価値があります。
欠点は、データベース統合がないことです (少なくとも私は統合を見つけられませんでした)。また、コード インテリジェンスが必要なときに常に表示されないという小さな問題にも遭遇しました。ただし、全体として、Komodo は堅牢で機能が豊富で信頼性の高い PHP IDE です。
PHP デザイナー
PHP デザイナーは他の IDE とまったく同じではありません。もちろん、サポートされるコード インテリジェンスは限られています。ただし、PHP Web アプリケーションの設計面に重点を置いています。これは統合ブラウザで明らかであり、特にピクセル ルーラーを使用してページ上の要素の配置を支援します。
図 4 は、実行中の PHP デザイナーを示しています。
図 4. Windows 上の PHP デザイナー
PHP デザイナーにおける PHP のコード インテリジェンスとデバッグ機能はあまり明らかではありませんが、HTML、CSS、JavaScript に対するコード インテリジェンスのサポートは比較的強力です。 PHP デザイナーは、プログラマーが使用する IDE (主にコードに重点を置く) と Adobe Dreamweaver (デザインに重点を置く) の中間に位置します。このタイプの中間製品をお探しの場合は、PHP Designer を検討する価値があります。IDE は個人使用には無料で、プロフェッショナル版はわずか 55 ドルだからです。
PhpED
NuSphere の Windows 専用 PhpED は、ここで説明するすべての IDE の中で最も機能が豊富です。優れた内部デバッガがあり、Microsoft Internet Explorer® にデバッグ ツールバーが組み込まれているため、ページのデバッグに簡単にアクセスできます。
図 5 は、Windows で PHPEd を使用した PHP アプリケーションの開発を示しています。一番左にはプロジェクトのファイルビューがあります。すぐ右にあるのはクラス ビューで、右端はコード ビューです。以下に出力状況を示します。これらの IDE はすべて、同じ基本的な設計スタイルに従っていることに気づいたかもしれません。
図 5. Windows の PhpED
PhpED の優れた機能には、優れたデバッガー、優れたデータベース アクセス、優れたコード インテリジェンス機能、統合された PHP ヘルプが含まれます。 PhpED の価格は、ベーシック バージョンの 119 米ドルからプロフェッショナル バージョンの 495 米ドルまでです。体験版もあります。
PHPEdit
WaterProof Software の PHPEdit は、PHP 用の Microsoft msdev 環境のように感じられます。これは素晴らしいことです。 PHPEdit は、セットアップが簡単な Windows 専用の IDE です。 PHPのバージョンもあります。 PHP、CSS、HTML のコード インテリジェンスでは優れた機能を果たしますが、JavaScript のコード インテリジェンスはサポートしていません。図 6 は、PHPEdit の実行を示しています。
図 6. Windows の PHPEdit
展開を容易にするために、PHPEdit は CVS と Subversion、FTP、独自の ezDeployment システムに接続できます。コード インテリジェンス機能に加えて、開発を迅速化するために、IDE には追加できるコード サンプルの優れた全体的なテンプレート ライブラリが備わっています。 PHPEdit の評価版は無料で使用でき、正式版の価格は 89 米ドルです。
Zend Studio
最後に、Zend Studio について話しましょう。Z で始まるという理由だけで最後にリストされています。おそらくそれが最初に思い浮かぶはずです。なぜでしょうか? それは、PHP を支えるエリート チームである Zend から提供されているからです。 そしてそれは本当に良いです。 Windows、Mac OS X、Linux の 3 つの主要なシステムで実行されます。また、PHP V4、PHP V5 など、必要なものがすべて揃っています。ダウンロードには時間がかかりますが、それだけの価値は十分にあります。
IDE としては Zend Studio が最適です。組み込みライブラリとカスタム コードに必要なすべてのコード インテリジェンス機能を提供します。また、非常に優れたデバッグ機能も備えており、セットアップも非常に簡単です。コードをリポジトリに配置するために、Zend Studio は CVS と Subversion に接続します。コードをサーバーに置くために、統合された FTP が利用可能です。図 7 に示すように、Zend Studio は Macintosh に最適です。
図 7. Mac 上の Zend Studio
他の一部の IDE では、コーディングを容易にするためにコード スニペットが組み込まれています。また、IDE はデータベースと直接統合して、テーブルとフィールドを使用できるようにします。
Zend Studio の標準バージョンの価格は 99 米ドル、プロフェッショナル バージョンの価格は 299 米ドルです。ここで説明する機能の一部は、標準バージョンには含まれていません。 Zend Studio の試用版は無料で入手できます。
結論
優れた IDE が数多くあり、中には無料のものもあります。特にプロであれば、試してみることができます。会社や個人のコンサルタント料金を支払う必要がある場合や、必要な製品を購入するためにお金を費やす必要がある場合があります。 echo を使用してコードをデバッグするのと、統合されたデバッガーを使用してコードをデバッグするのにかかる時間を考慮すると、IDE は間違いなく購入価格の価値があります。