Home > Tags > Zend Debugger

Zend Debugger

Zend Debugger, Xdebug, DBGを比較する

Zend Debugger

Index of /pdt/server-debugger

  • PDT または Zend Studio(6.0以上)と一緒に使用できる
  • Zend Serverには組込み済み
  • Zend Studioと併用すれば統合されたプロファイリング機能やコードカバレッジ機能が使える。
  • 現在公開されている最新バージョンは2008年9月リリースの5.2.15だがZend Serverにもこれと同じバージョンが入っているのかどうかが不明。(ちなみに最新のZend Studio 7.0.0betaに組み込まれているZend Debuggerのバージョンを見たら5.2.26となっていたので開発は進んでいるようだ。おそらくこれはPHP5.3に対応したバージョンだろう。)

Xdebug

Xdebug – Debugger and Profiler Tool for PHP

  • サードーパーティのオープンソース製品。非常に優れたツールとして広く使用されている。
  • なんとすでにPHP 5.3に対応済み(2.0.4以降)
  • エラーの内容をわかりやすく整形して出力してくれる。(ここを参照。) コードカバレッジ機能とプロファイリング機能を標準で備えている。
  • phing, PHPUnit, phpDocumentorとの連携で自動テスト&レポート作成ができる。
  • PDT(2.0以上)およびNetbeans(6.5以上)と組み合わせて快適に使える。
  • Zend製品との組み合わせに難あり
    • Zend Studio – EclipseベースのはずなのにZend Debuggerしか選べない。(※注)
    • Zend Server – 相性が悪い

DBG

  • オープンソースの無償版と有償版がある。
  • 無償版はPHPEclipse VS.Php などでサポート。
  • 有償版は商用IDEのNuSphere PhpED と共に提供される。
  • 最新版がリリースされたの2007年の5月と少々古い。
  • PHP5.2まで対応。
  • 今となっては多少マイナーな存在か。Xdebugが先に進みすぎているだけかも。

まとめ:

Zend DebuggerはZend Studioと一緒に使わないとコードカバレッジやプロファイリング機能を使えないのが辛い。ZendとしてはユーザにZend製品で統一してもらいたいのだろうが、無償で利用できるXdebugと比較した場合その価格に見合った価値を提供できているかというと正直”?”である。今後の開発でさらに優れた製品になることを期待。

(※ 注) 実はZend Studio使用時にXdebugを有効にする方法がある。How to enable the Xdebug debugger in Zend Studio for Eclipse – Blog of Max Horvath

PHP開発を行うための統合AMP環境まとめ

「IDEとデバッガを使用して開発作業を行う」という前提でメジャーな統合AMPをまとめる。

Zend Server

特徴:

  • Windows版、Linux版, Mac OSX版あり
  • デバッガ(Zend Debugger)組込み済み。
  • 他のZend製品との連携機能あり。
  • GUIによる管理画面がとても充実している。
  • ウェブサーバとしてApacheだけでなくIISも選べる(Windows版のみ)

コメント:

  • Xdebugとの相性が良くないのでデバッガはZend Debuggerをそのまま使うのが賢明だ。(参考:Zend ServerでCLI – noopな日々)ということは、プロファイリングやコードカバレッジ機能は有償のZend Studioを使わないと実現できないということになる。
  • Mac版の場合、 以前にも書いたが実運用重視のためパラメータやパーミッションの設定が厳しめ。このあたりのことをできるだけ気にせずに開発作業をしたい人はMAMPのほうがいい。
  • 有償版に限った話だがページキャッシュ、アプリケーション監視、自動アップグレード&パッチ適用機能などがある。これは実運用には役立つだろう。

MAMP

特徴:

  • Mac 専用
  • UIがシンプルで扱いやすい
  • デバッガは自分で組み込む必要あり

コメント:

  • 製品のリリース間隔が長いのが不安。現在のver.1.7.2は約1年前にでたもので、PHPのバージョンは5.2.6でApacheは2.0系、 MySQLも5.0系。
  • Zend Serverに比べてセキュリティ設定が甘いのであれこれといじりやすい。
  • MAMP Proという実運用向けの製品もある。

XAMPP

特徴:

  • Windows版 Mac版 Linux版 Solaris版あり
  • デバッガは自分で組み込む必要あり
  • Windows版についてはメールサーバやFTPサーバも付属。
  • 開発が活発ゆえパッケージ内の各アプリが新しめ。
  • Mac版については起動・停止にコマンドラインを使う必要あり。

コメント:

VertrigoServ

特徴:

  • Windows版のみ
  • XAMPPよりもGUI管理画面がわりと充実、ただしZendServerほどではない
  • 開発が遅いので現バージョンに含まれるPHPは5.2.6のまま

コメント:

  • もっと開発のスピードを速くしないとXAMPPにとってかわることはできそうにない。

次エントリではデバッガの比較をしたいと思う。


2009/7/7  はてブ経由でBitnamiを知ったので以下追記。

Bitnami

特徴:

  • Windows版, Mac版, Linux版, Solaris版あり
  • インストーラで簡単インストール
  • コントロールパネルのUIは必要最低限かつシンプルでわかりやすい
  • PHPのバージョンは5.2.8。Apacheは2.2系、MySQLは5.1系
  • デバッガは自分で組み込む。
  • MAMP同様中身をいじりやすい。

コメント:

  • インストーラが良くできている。
  • XAMPPやMAMPよりもこちらの方が優れているか。

Zend DebuggerとXdebug – どちらを使えばよいのか

  • XdebugをPDTで使ってデバッグすると変数に含まれる日本語を正しく表示できない、だからPDTとの組み合わせではZend Debuggerを使うべき
  • Zend Debuggerはmod_rewriteには対応していないのでCakePHPをデバッグできない。XdebugならOK。

という主旨の情報がWeb上にいくつか見られるので試してみた。特に後者の問題については他の人の報告を鵜呑みにしているだけのようなエントリが見受けられるので自分で確かめたかった。

動作させた環境

- Mac OS X 10.5.7

- Zend Server Community Edition 4.0.3 + Zend Debugger(Zend ServeにはZend Debuggerが最初から入っている。組込み済みZend Debuggerの正確なバージョンを知る方法が自分にはわからないので断言はできないが、Zend Debugger 5.2.15が2008年の9月に公開されているので少なくともこれより後のバージョンのはずだ)

- MAMP 1.7.2 + Xdebug 2.0.4

- PDT 1.0.3

- PDT 2.0

- PDT 2.1

1. Xdebug + PDTは文字化けするのか?

PDT1.0.3では確かにデバッグ内容が文字化けする。だが2009年1月にリリースされたPDT 2.0およびつい最近リリースされたPDT 2.1では大丈夫だ。(もちろんPDT側で文字コード関連の設定を正しく行う必要はある。)

2. Zend Debugger + mod_rewrite + CakePHPは正しく動かないのか?

これは耳にした時から腑に落ちなかった。同じくmod_rewriteを使用するZend Framework + Zend Debuggerの組み合わせで自分は問題に遭遇したことがないからだ。CakePHP固有の問題なのかもしれないのでCakePHP(1.2.3.8166)をセットアップし、サンプルをPDT2.0でデバッグしてみたのだが何の問題もなくデバッグできた。

この問題に言及しているウェブ上の情報が1年前以上のものということで少々古いし、書き手の環境等の具体的なデータが載っていないのが気になる。もしかして以前はこの組み合わせではだめだったのかもしれない。ただ自分も今回さらりと使っただけなので「現在のバージョンでは問題なし」と断言できるほど十分使い込んだとは言えない。なのでこの辺はCakePHPに詳しい人に会ったときにぜひ聞いてみたい。

まとめ

  • 最近のPDT(2.0以上)はXdebugとZend Debuggerのどちらと組み合わせてもちゃんと日本語を扱える。
  • Zend Debugger + mod_rewrite + CakePHP の組み合わせに問題があるのかどうかについては保留(個人的な感触としては2009年7月現在の最新バージョンを使えば問題なさそう)

※PDT以外のIDE以外の場合については別エントリで書きたいと思う。

Home > Tags > Zend Debugger

アーカイブ

Return to page top