CakePHPの試食前に、EclipseでPHPの開発環境を整える
こんにちは、akai-hitoです。
PDTが晴れて、バージョン1.0になったので、ここで紹介します。
PDTとは、Eclipse PHP Development Toolsの略で、Eclipse上でPHPの統合開発環境を利用できるプロジェクトです。
似たようなプロジェクトとしては、PHPeclipse等があります。
「CakePHP のおいしい食べ方」さんのPDT(Eclipse)+xdebugというエントリーによると、ZendDebuggerだとCakePHPでデバッグできない(mod_rewriteが使えない)ようなので、 CakePHPでデバッグをしたいので、デバッガにはXdebugを選択します。
従って、XAMPP + Eclipse + PDT + Xdebugをつかった PHPの開発環境整備ということになります。
つっこみ・指摘希望します
実は正しいセットアップかどうか、あやしい部分があります。
具体的には、xdebugを使ったデバッグ時にブレークポイントで止まるのですが、やり方がwebを徘徊して集めた情報と若干違います。
2007.9.28追記「07」さんより頂いたコメントの内容を反映しました。
2007.9.27追記「Kemworld::Diary」さんからトラックバックで教えていただいた情報とPDTがXdebugを正式にサポートされた情報を勘案すると、この状態でよいような気がします。
誰かが指摘してくれることを期待して、ここにその過程を晒します。
PDT All-in-Oneのインストール
PDTはPDTからダウンロードできます。
今現在(2007/9/21)は、
1.0 Release Build R20070917
が最新です。
リンク先には、色々なプロダクトがありますが、お勧めは、インストールするだけすぐに使える、Eclipseを含んだオールインワンパッケージ「PDT All-in-One」です。
Windows版のダウンロードは、
pdt-all-in-one-1.0-R20070917-win32.zip
からおこないます。
ダウンロードしたZIPファイルを解凍すると、「eclipse」というフォルダが出来ますので、適当な場所に配置してください。
その中のeclipse.exeを起動すると、PDTが導入済みのEclipseがすぐに使えます(セットアップウィザードが起動するのではない)。
ちなみに1.0 Release Buildに含まれるEclipseはV3.30です。
デバッガ
続いてデバッガの導入です。
つい最近まで、ZendDebuggerを使っていたのですが、CakePHPの使用をにらんで、ここではXdebugを導入します(理由は前述)。
Xdebugのインストール
現時点では、XAMPPには最初からXdebugの最新版が含まれているようです。
XAMPPをお使いの方は、「PHP.INIを編集」に進んでください。
そうでない人は、XdebugのWinndows版をダウンロードします。
この時、PHPのバージョンに合わせて選択してください。
(最新は、PHP 5.2.1+)
解凍したファイルに含まれるphp_xdebug-2.0.0-5.2.2.dllをPHP.INIで指定しているextensionディレクトリに配置します。
(例C:¥Program Files¥xampp¥php¥ext)
PHP.INIを編集
PHP.INIをエラー時にデバッグしやすくするために次のように編集します。
(元からある zend_extension_tsはコメントアウトします。)
[xdebug]
zend_extension_ts = “C:Program Filesxamppphpextphp_xdebug-2.0.0-5.2.2.dll” ←環境に合わせてください
xdebug.remote_enable=1
xdebug.remote_handler=”dbgp”
xdebug.remote_mode=req
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.remote_log=”C:Program Filesxamppapachelogsxdebug.log”
xdebug.manual_url = http://jp2.php.net
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *
[Zend]
;zend_extension_ts = “C:Program FilesxamppphpzendOptimizerlibZendExtensionManager.dll”
今回xamppを使っているので、
ローカル用のPHP.INI
(例、C:¥Program Files¥xampp¥php¥php.ini)
とサーバ用のPHP.INIの両方を修正します。
(例、C:¥Program Files¥xampp¥apache¥bin¥php.ini)
ちなみに xdebug.dumpはGET、POSTの他に、次ような指定もできます。
xdebug.dump.COOKIE
xdebug.dump.ENV
xdebug.dump.FILES
xdebug.dump.REQUEST
xdebug.dump.SERVER
xdebug.dump.SESSION
PDTにXdbeugをサポートさせるプラグインのインストール
https://bugs.eclipse.org/bugs/show_bug.cgi?id=169408から
Prebuilt Binary of XDebug Support for V0.2.3 for PDT 1.0をダウンロードして、プラグインフォルダーに配置します。
2007.9.27追記「Kemworld::Diary」さんから不要な作業であると、トラックバックで教えていただきました。
再起動
ここでEclipseおよびapacheの再起動をします。
デバッグの仕方
2007.9.27追記 修正しました。
1.適当にスクリプトを書き、左の余白部分でダブルクリックすると、ブレークポイントを作成します。
2.「実行」→「デバッグ・ダイアログを開く」を実行します。
3.ここで、「PHP Web Script With Xdebug」を選択してデバッグをおこなうと、
3.ここで、「PHP WEBページ」を選択してデバッグをおこなうと
ブレークポイントで止まりません
いくら設定を変えても、私の環境では出来ませんでした。
悩むこと約1日、ふと、Xdebugを導入前からある、「PHP WEBページ」を選択して、「Server Debug」で「Xdebug」を選択して行うと
わざとエラーを出すようなスクリプトを書くと、GET・PUTした内容をブラウザに書き出しますし、、Xdebugが動いているのは間違いないようです。
うーん、Prebuilt Binary of XDebug Support for V0.2.3 for PDT 1.0に含まれるXDebugPHPIDEGuide.pdfやRemote debugging with PDT and Xdebugをみると
PHP Web Script With Xdebugを使うように書いてあるんですが、その方法だと私の環境だと動きません。
とりあえず、目的は達したので、良しとします。
だれか、ご存知の方がいらっしゃれば、教えてください。
10月初旬にでるCakePHPの解説本にこの辺が載っていれば良いのですが・・・
ついでに
全角スペースと半角スペースを目視で判別できるようにJstyleプラグインのインストールと
Eclipseを日本語化しておいた方が幸せになれます。
2007.11.7追記
スクリーンキャプチャつきで、実際のデバッグの様子をまとめていますので、よろしかったらどうぞ
【CakePHP】Eclipse+PDT+Xdebugを使ったデバッグ方法について、画面付でまとめみる
Popularity: 98 %
by redgasuki 










[php][eclipse][pdt][Xdebug]Ecl…
PHPの開発環境をなんとかしたい、とずっと思ってたけどなかなか手が進んでなかった。 でも、 テキストエディタからPHPEclipseへ移行した決め手 - EC stu (more…)
初めまして、こちらのサイトを参考にさせていただいてPDTの設定をすることができました。その際に詰まったことがあったのでご報告させていただきます。
PHP.INIの設定
PHP.INIの設定ですが、XAMPPを使っている場合に以下の行をコメントアウトしないと正常にデバッグが動きませんでした。(というか、APあちぇが起動しない)
基本的ですが、以外とはまりました、、、orz
[Zend] 項目の
zend_extension_ts = “D:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll”
こんなところで詰まる人はいないとは思いますが、初心者向けの情報として報告させていただきました。
07さん、こんにちは
コメント頂きまして、ありがとうございます。
確かに、コメントアウトしないと、ダメですね。
暗黙でやってました。
不親切で申し訳ありません。
本文を訂正しました。
ご対応の方、有り難うございました。
ちなみに、自分はCode Igniterで開発予定です。
Eclipse導入…
PHPでシステム開発をしているがEclipseがいいと聞いて早速導入してみた。本来はJavaの開発用の環境らしいが他言語用にも使えるようなツールが準備されていてPHP用 (more…)
(PHP)Eclipse(PDT)でcakePHPでも使えるデバッガ導入メモ
PDT環境でのデバッグ方法探してたところ、ねねとまつの小部屋さんのところで構築方法が紹介されていました。
下記の2つの記事で構築方法が紹介されています。
CakePHPの試食前に、Eclips…