Eclipse+PDTによるCakePHPコンソールアプリのデバッグ

Go previousメニューに戻る

はじめに


(2014/06/11) 本構成を Web アプリのデバッグでも試してみたら、下記の環境では core を吐いて Eclipse が落ちてしまいました。もはや、個人的にはあまり Eclipse はオススメではありません。NetBeans を使うのが無難そうです。

例示におけるプラットフォームは VMware vSphere 上の VM に入れた CentOS 6.5(64bit)です。OSインストール時のパッケージグループとしては Software Development Workstation を選択しました。PHP 5.5 + CakePHP 2.4.4 のインストールに関してはCakePHP のインストールを参照してください。

なお、筆者がクライアントとして常用しているのは Windows 7 64bit Pro です。Windows からはVNCを使って Linux 上の Gnome にログインしています。

PDTの導入

EclipseはJavaで書かれた統合開発環境(IDE)です。当初はIBMで開発されましたが、現在はEclipse Foundationに移管されています。前述の環境ではEclipseは最初からインストールされていましたが、残念ながらPDTは入っていませんでした。

PDT(PHP Development Tool)はEclipse上で動作するPHP開発用プラグインです。eclipse-pdtパッケージを提供してくれるyumリポジトリを見つけることができなかったので、ZendのサイトからAll-in-Oneパッケージを持って来ることにしました。PDT Downloadsのページから Linux を選び、PDT 3.2.0 w/Eclipse Indigo (64 bit) をダウンロードします。事前にZendへのユーザ登録が必要です。

zend-eclipse-phpは/opt配下に入れることにします。

root@rice:~# cd /opt
root@rice:/opt# tar xzf /tmp/zend-eclipse-php-3.2.0-x86_64.tar.gzm

執筆時点では、Zend Eclipse PDT 3.8 が入りました。Zend版パッケージでは残念ながら日本語化はされていません。どうしても日本語でないと困る方はPleiades - Eclipse プラグイン日本語化プラグインあたりに挑戦してみてください(筆者も挑戦してみましたが挫折しましたw)。

ちなみにXdebugは、PHPのデバッグ用Extentionです。前述のインストール手順を踏んで、php55w-pecl-xdebugというRPMパッケージが入っていればそのまま使えるはずです。

root@rice:~# rpm -qa|grep xdebug
php55w-pecl-xdebug-2.2.3-2.w6.x86_64

Eclipseの起動

前述のインストール手順に従って環境を構築し、VNC または直接 X(Gnome環境) から一般ユーザとしてログインします。メニュー中のEclipse(標準パッケージ)は使用せず、Gnome端末を開いてコマンドラインでEclipseを起動します。

m-hotta@rice:~$  /opt/zend-eclipse-php/zend-eclipse-php

起動時は「ワークスペースの選択(Select a workspace)」ダイアログが表示されます。

各画面は半分のサイズで掲載しています。ブラウザの機能で「新しいタブで画像を開く」などすれば実物大になります。

ワークスペースの選択

"Use this as the default and do not ask again"にチェックを付けておくと、次回からは聞かれません。[OK]を押すとワークスペースが表示されます。

Resource Welcome

システム全体の設定

[Welcome]と[タスク]のペインは不要であれば[X]で閉じておきます。

プロジェクトの作成

Eclipseでデバッグをするにあたり、まずプロジェクトを作成する必要があります。前提として、CakePHPのLDAPサポートプラグイン(Yaldap)に従ってホームディレクトリ配下に~/cakeとしてCakePHPコンソールアプリの実行環境があるものとします。

  1. Eclipseのメニューから[File]>[New]>[Project]を開く。

    New Project

    New Projectウィザードが表示されるので、[PHP]>[Local Project from Existing Directory]を選択して[Next]。
  2. New Local PHP Projectウィザードが開きます。

    New Local PHP Project

    Project Name
    cake
    Localtion
    /home/m-hotta/cake

    ユーザ名はご自分の環境に合わせてください。[Next]で進みます。

  3. Launch Setting画面になります。デフォルトでは[Launch URL](Webアプリのデバッグをするモード)となっているので、[Launch CLI Application]を選択して[Next]

    Launch CLI Application

  4. ライブラリの選択画面になりますが、今回のサンプルの実行に関しては外部ライブラリは不要なので何も選択せずに[Finish]で完了。

    Launch CLI Application

  5. メニューから[Window]>[Open Perspective]>[Other]>[PHP(default)]を開く。
  6. Project Explolerペインにプロジェクト'cake'が作られていることを確認します。

デバッグの設定

  1. プロジェクト'cake'で右クリックして[Debug As]>[Debug Configuration]
  2. 左上の[New Launch Configuration]ボタンをクリック
  3. Name:は'cake'として、PHP Scriptタブを設定します。

    Debug Configuration - PHP Script

  4. [PHP Script Arguments
    cakeコマンドに渡す引数を指定ます。今回は 'Yaldap.sample_app' です。
  5. [Apply]で確定し、[Close]で終了

デバッグの開始

  1. メニューから[Window]>[Open Perspective]>[Other]>[Debug]を開く。
  2. メニュー下の虫のアイコン(Debug cake)をクリックします。
    初回はValidatingでしばらく待たされます。 その後、"Break at First Line"にチェックを入れている場合はcake.phpの20行目で実行が停止します。

    Debug in Progress

  3. ブレークポイントの設定/解除

    行番号の左の帯をダブルクリック

これで実行中に変数の値などがリアルタイムで参照できるので、デバッグ効率が格段に上がります。ただ(Eclipse/PDT/XDebugいずれかの)動作に癖があるので、慣れないと最初はいろいろと戸惑うことも多いかもしれません。

Go previous