この記事では、統合開発環境 (IDE) のあらゆる用途を調査し、7 つの人気のある IDE のコストとメリットを比較します。
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、StructuredQueryLanguage (SQL)、HypertextMarkupLanguage (HTML)、CascadingStyleSheets (CSS) などの関連言語セットもサポートします。 HTML と CSS は比較的単純であるため、IDE によるこれらのサポートが最適です。 JavaScript のサポートでは構文が強調表示されることがよくありますが、サポートしないよりはサポートしたほうがよいでしょう。
ソース管理
ここでレビューするすべての IDE は、ソース管理システムへの接続をサポートしており、プロジェクト内のファイルのバージョンを長期にわたって維持できます。ファイルの特定のバージョンをリリース バージョンとしてマークすると、変更を元に戻す必要がある場合にそのバージョンを元に戻すことができます。ソース管理システムを使用することは、個人で使用する場合でも、チーム環境では非常に重要です。優れたソース管理システムは、ディスクがクラッシュしたとき、または顧客が突然現在のバージョンではなく前のバージョンを必要としたときに役に立ちます。ほとんどの IDE は、どちらもオープン ソースの制御システムである ConcurrentVersionSystem (CVS) と Subversion をサポートしています。 IDE の 1 つは、商用ソース コード管理システムである Perforce をサポートしています。
FTP/SFTP の統合
ソース管理に関連する機能の 1 つは、最新のコードに対してサーバーで FTP を使用することです。これは、FTP クライアントを使用したり、自分でファイルをパッケージ化してサーバーに送信してから解凍したりするよりもはるかに簡単です。
データベース ナビゲーション
基本的ではありませんが、非常に便利な機能がデータベース ナビゲーションです。この機能を使用すると、アプリケーションがアクセスするデータベースを参照し、テーブル名とフィールド名を検索し、クエリ結果を返すことができます。一部のシステムでは、データベース アクセス コードを自動的に作成することもできます。
統合ウェブブラウザ
一部の IDE は、指定された追加パラメータを使用して編集中のページに直接移動できる統合 Web ブラウザをサポートしています。このブラウザは、IDE 内でホストすることも、外部から呼び出すこともできます。正直に言うと、私は統合ブラウザの大ファンではありません。コードの編集と結果の表示のために 2 つの別々のアプリケーションを切り替えるのは気にしないからです。しかし、役割があることは知っていますが、使用する必要はありません。
スニペット
これらすべての IDE で私が見つけた最後の機能は、完全なカスタム コード スニペットのサポートです。スニペットは、入力に対する正規表現の実行、データベースへの接続、データベースのクエリなどの小さなタスクを実行する小さなコードです。
上記は、現在購入済みまたはオープンソースの IDE に期待できるコア機能をまとめたものです。次に、いくつかの人気のある IDE を紹介し、いくつかの IDE 画像を示し、それらがサポートする機能とそのコストについて説明します。