Posts tagged ‘ZendDebugger’

PHP5.3とPDT2.2とPDO

記事名の組み合わせを試してみたのだが、そのメモ。

PHPはいいとして、PDTとは、Eclipseのプラグインで、PHP Development Toolsの頭文字を取った呼称です。
EclipseでPHPの開発を行うためのものです。

PDOとは、PHP Data Objectsの頭文字で、PHPからデータベースを使用する際、実装依存を極力回避するためのインターフェイスライブラリです。

現在最新のバージョンで試してみたのですが、うまく動いてくれませんでしたという話。

環境は以下です。
・Windows Vista Home
・Eclipse 3.5.1 Galileo
・PHP 5.3.0(VC6 Non Thread Safe版)
・PDT 2.2.0.v200910240541-7L7J-F8NcJKhTJcwK4wT(これ

まずは、PDTは入っているので、PDOを動かそうとした。
しかし、PHP5.3のextフォルダには、php_pdo.dllがない。ソースコードはあるので、まだWindows版には同梱されていないのか?
PHP5.1以降にはPDOが同梱されているはずなのだがないのでしょうがない。

ふと、プラグインフォルダ(eclipse\plugins\org.zend.php.debug.debugger.win32.x86_5.2.26.v20090817\resources)をみてみると、php.exeやZendDebugger等一式がプラグインにあるようなので、それを使おうと四苦八苦してみた。
どちらにせよ、php_pdo.dllはないようなのでうまくいかない。

こんどは、ローカルインストール版のPHPでZendDebuggerを使用しようと思った。しかし、ZendDebuggerに含まれているのは最新版で5.2.xしかない。
一応5.2.xのZendDebuggerを使ってやってみるが動作しない。

さらに念を入れて、以前ダメだったPHP5.3のインストーラ版を入れてみようとするが改善していなかった。

なので、PHP5.2.11を入れてみたら、ちゃんとphp_pdo.dllもZendDebuggerも動作するようなので最初からこうすればよかった。


PHP5.3にZendDebugger

PHP 5.3.0を使って開発環境を作ろうとしているのだが、PHP5.3.xに対応するZendDebuggerが現在ないらしい。

Eclipseから使用できればとりあえず良いので、Zendのサイトから「Zend Debugger Feature 5.2.26.v20090817」というのを入れてみます。
このバージョン番号が5.2.26.xxxというのが気になるのですがやってみよう。

Eclipseのバージョンは先日入れた3.5Galileoです。

「新規ソフトウェアのインストール」で、以下サイトを入力して「Zend Debugger Feature 5.2.26.v20090817」を選択して普通にインストールします。

http://downloads.zend.com/pdt

これで、PDT2.2でZend Debuggerが使えるようになったら良し。
プラグインをみてみると、PHP.exeやZendDebugger.dllがプラグインの中に同梱されているようなので、もともとマシンにインストールされていたPHPは使用しなくて良さそう。

設定は以下の通り(ウインドウ-設定-PHP)
・PHP ExecutableはPHP5.3.0(CGI)を選択してDefault設定
・PHP InterpriterはPHP5.3.0
・PHP Serversはもともと設定されているDefault PHP Serverを使用する。
さらに、ここからPathMappingでEclipseプロジェクトのパスを指定してもダメそうでした。
PDT User GuideのPath Mappingの項で、以下説明によると設定できそうな感じではあったのですが・・・。

1. Manually, through the PHP Servers Preferences page. See ‘Adding a Server Location Path Map’ for more information.

EclipseのプロジェクトはDocumentRoot以下には置いていません。
まあ、Apacheで指定していない場所をEclipseから制御できるほうがおかしいのでこの説明はプロジェクトがDocumentRoot以下にある場合の指定方法だとは思いますが・・・。
Eclipse で PHP PDT」で行っているように、httpd.confにプロジェクトディレクトリを指定してみたらうまく起動してくれたようです。

httpd.confの最後に下記つけてApache再起動
———-
Alias /testProj “C:\MyProjects\testProj”

Order deny,allow
Allow from all

———-

Debug As

PHP Web Page
でブレークとまるし
ブラウザには結果が表示されるし
PHPファイルのコピーいらないし
PHP Servers

Path Mapping
には自動で文字列かかれているよ

PDT User Guide の Path Mapping の項目にも自動でかかれるとかかいてあった
———-
2. Automatically whenever a file is debugged – A Path Map is automatically set between the path to the debug target’s parent project (the parent project of the file from which the debugging process has been launched – e.g. C:\Workspace\MyProject) and the debug target’s project in the Workspace. (e.g. MyProject).
———-

これで、プロジェクト右クリック→Debug→PHP WebPageで起動構成を作成して起動する。
まだBreakPointでとまるとかは確認していませんが、レスポンスは確認できました。

しかし問題が。
これだとたぶんPDOが使えない。Pluginのphp.iniにPDOの設定をすれば良いのだろうけど、あんまりやりたくないなぁ。