15
15

More than 5 years have passed since last update.

GEBEN on EmacsでPHPのリモートデバッグ

Last updated at Posted at 2014-09-19

「EmacsでもPHPをリモートデバッグしたい!ステップ実行したい!Vimに負けたくない!」

という、誰かの心の声が聞こえたので、久しぶりにGEBENの設定をしてみました。

GEBEN on Emacs

スクリーンショット 2014-09-19 17.56.37.png

ちなみに前回は挫折しています。

前提

  • CentOS上のLAMP環境 ( http://example.com/ )
  • 同じCentOS上にEmacsをインストールして開発

インストール

Xdebug

今回は yum でインストールします

$ sudo yum install -y php-pecl-xdebug --enablerepo=epel

インストール後に /etc/php.d/xdebug.ini を設定します

zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable = true
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1 ; リモートのEmacsからデバックしたいならIPアドレスを適切に変更しましょう
xdebug.remote_port = 9000

httpdをリスタートしてXdebugは設定完了です。

GEBEN

GEBENは(いつの間にか)MELPAに対応していますのでコマンドで簡単にインストールできます。

M-x package-install geben

使い方

M-x geben

で、Emacsが9000番ポートでXdebugからの通信を待ち受けます。

そして、おもむろにブラウザから ?XDEBUG_SESSION_START=1 をつけてアクセス

http://example.com/?XDEBUG_SESSION_START=1

するとステップ実行が開始されます。簡単!

詳しいキー操作はREADMEを見てもらうとして

よく使うキー操作を紹介します

  • SPC ...ステップイン/ステップオーバ
  • i ...ステップイン
  • o ...ステップオーバ
  • g ...実行
  • c ...カーソル位置まで実行
  • b ...ブレークポイントを設定
  • u ...ブレークポイントを解除
  • U ...ブレークポイントを全て解除
  • v ...変数内部を別画面で表示 ( q で戻れます)

Emacsの待ち受けを終了するときは M-x geben-end です。

CakePHPで該当コントローラの処理までステップ実行するのがつらい!

最近のフレームワークはルータやディスパッチャが頑張りますから、「該当ファイルまで SPC 連打」とか死ねます。

そういうときは M-x geben-open-file で対象ファイルを開き、 c でカーソル位置まで実行させましょう。( M-x find-file ではないのがポイントです )

というわけで

よいEmacs開発ライフを!

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15