SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

「Eclipse+PDT」でPHP開発
~環境構築と使用方法

無償のEclipseとPDTプラグインを使って、PHPのコーディング作業を効率化

  • X ポスト
  • このエントリーをはてなブックマークに追加

PHPコードのデバッグ

 Eclipse+PDTには、PHPのデバッグ機能が搭載されています。一般的にPHPの実行環境には、デバッグのために実行を制御する機能がありません。そのため、PHPデバッグのために実行を制御するためのモジュールを組み込みます。

 デバッグのためのモジュールは、XDegubとZendデバッガー(Zend_Debugger)の2種類が存在します。XAMPPには、いずれも付属しているので、ここではZendデバッガーを使用してデバッグを行います。設定は、PHP実行環境の設定で行いました。

 なお、Eclipse+PDTは、実際のWebサーバに搭載されたデバッグモジュールと連携してデバッグを行うリモートデバッグ機能も搭載されています。

図17 ローカルデバッグとリモートデバッグの構成
図17 ローカルデバッグとリモートデバッグの構成

ブレイクポイントの設定

 デバッグに欠かせないのが、ブレイクポイントです。ブレイクポイントは、デバッグ時に実行をブレイク(一時中断)したい行にブレイクポイントを設定します。実行がブレイクすると、変数の内容やコード間の呼び出し状況を確認することが可能です。必要があれば、変数の値を変更することも可能です。その後は、実行状況を確認しながら、少しづつ実行を進めることが可能です。

 ブレイクポイントの設定は、エディタにソースコードを表示して、設定したい行の左端をダブルクリックします。ブレイクポイントが設定された行には、行の先頭に印となる青いポインタが表示されます。

図18 ブレイクポイントを4、8、13行目にセット
図18 ブレイクポイントを4、8、13行目にセット

PHPファイルのデバッグ

 PHPファイルのデバッグは、実行と同様に非常に簡単です。

デバッグの開始

 [実行(R)]メニューの[デバッグ(D)]を選択すると、デバッグが開始されます。ツールバーのデバッグアイコンでもデバッグを開始できます。

図19 「パースペクティブ切り換えの確認」ダイアログボックス
図19 「パースペクティブ切り換えの確認」ダイアログボックス

 パースペクティブをデバッグ用に変更する警告の「パースペクティブ切り換えの確認」ダイアログボックスが表示されるので、[はい(Y)]ボタンをクリックします。パースペクティブが「PHPデバッグ」に切り替わり、対象のPHPファイルの先頭行(最初のPHPコード)で自動的にブレイクします。

 以下に、「PHPデバッグ」パースペクティブの画面構成を説明します。

図20 「PHPデバッグ」パースペクティブ
図20 「PHPデバッグ」パースペクティブ
  • 「デバッグ」ビュー
  •  実行状況と制御のためのビューです。ツールバーに実行を制御するためのアイコンが配置されています。実行しているPHPファイルがツリー状に表示されます。他のPHPファイルに遷移した場合でも、「デバッグ」ビューの表示で容易に判別できます。

  • 「変数」ビューと「ブレイクポイント」ビュー
  •  「変数」ビューは、実行中の変数の内容を表示します。Webシステムでは、重要となる環境変数の内容も表示されます。なお、変数の内容は、ブレイク中に変更することが可能です。

     「ブレイクポイント」ビューは、設定されているブレイクポイントを表示します。ブレイクポイントを無効にすることも可能です。

  • 「デバッグ出力」ビューと「ブラウザ出力」ビュー
  •  「デバッグ出力」ビューと「ブラウザ出力」ビューは、デバッグ途中の出力内容を表示します。

  • PHPエディタ
  •  実行中(ブレイク中)の行を反転表示します。マウスポインタを変数に重ねると、変数の値がバルーン表示します。また、カーソルをブレイクしたい行に置き、[指定行まで実行(L)]を選択するとブレイクポイントを設定しなくてもその行でブレイクします。

  • 「コンソール」ビュー
  •  実行環境から出力されるメッセージを表示します。Error、Warning、Noticeなどのメッセージを確認できます。

実行制御

 ブレイク後の実行制御は、さまざまなニーズに対応するために多くの機能が用意されています。これらを使い分けることで、大量で複雑なプロジェクトでも効率的に実行およびデバッグが行えます。

表1 実行を制御する機能
項目 内容 備考
再開 実行を再開する  
中断 ただちにブレイクする  
終了 実行を終了する  
ステップイン 呼び出すコードに実行を進める 他のコード呼び出しでない場合には1行実行が進む
ステップ・オーバー 今から実行するコードの呼び出しが終わった直後まで実行する 他のコード呼び出しでない場合には1行実行が進む
ステップ・リターン 現在実行が一時停止している位置が含まれるコードの呼び出し元に実行が戻った時点でブレイクする  
指定行まで実行 カーソルがある行まで実行する  
ステップ・フィルターの使用 事前にステップ・フィルター設定が必要 フィルター指定したコードはデバッグ対象にしない

まとめ

 Eclipse+PDTのインストールからデバッグまでを紹介してきました。プロのPHP技術者が求める上位の機能に関しては、Zend社が提供しているZend Studioシリーズに実装されています。こちらには、ユニットテスト(カバレッジを含む)やプロファイリングなどのPDTに実装されていない機能が実装され、細々としたブラッシュアップもされているので、プロユースのプロダクトと言えます。それは、Zend社のサイトで確認してください。

 プロフェッショナルはさておき、ここで紹介したようにEclipse+PDTには、PHPのコーディング作業を効率化するための機能が用意されています。これらの機能を使用することによって、PHPプログラミングの量を減らすことが可能です。これまで、利用していなかった方々もぜひお試しください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐藤ゆうき(サトウ ユウキ)

テクニカルライター。大手銀行のシステム子会社を経て、PCによるシステム構築の世界に入る。オフィスソフトのインストラクターを担当しながら、Visual Basic、Microsoft Access、.netに関連した著書を執筆した。SIerの営業部門やマーケティング部門にて日々活動している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5105 2010/04/27 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング