MAMPのphp.iniに設定を追加する
MAMPを使用している場合、私はPROなのでファイルメニュー -> テンプレートを編集 から編集できますが、PROでない場合はphp.iniを直接開いての編集となります。各phpバージョンごとに設定が必要なので、利用環境に合わせて設定を追加していきます。例えば以下。zend_extensionの部分はコメントアウトされているだけなので、行頭のセミコロンを削除でOKです。
[xdebug] zend_extension=“/Applications/MAMP/bin/php/php5.3.14/lib/php/extensions/no-debug-non-zts–20090626/xdebug.so” xdebug.remote_enable=On xdebug.remote_host=“localhost” xdebug.remote_port=9000 xdebug.remote_handler=“dbgp” xdebug.remote_autostart=Off xdebug.profiler_enable = On xdebug.profiler_dir = “/Applications/MAMP/tmp/php5.3.14/xdebug/” xdebug.collect_vars=on xdebug.collect_params=4 xdebug.dump_globals=on xdebug.dump.GET=* xdebug.dump.POST=* xdebug.show_local_vars=on
SublimeXdebugを追加する
SublimeXdebugというXdebugクライアントのプラグインがあります。実行すると、ST2上にXdebugによるPHPデバッグメニューとデバッグ状況を表示する分割ウィンドウを表示します。
.sublime-projectファイルに設定を追加する
ST2のプロジェクトとして保存している場合は、以下の様な設定を追加します。例えばWordPressを利用時にwpフォルダを作っている場合は、http://your.web.server/wpと記述します。
{
"folders":
[
{
"path": "..."
},
],
"settings": {
"xdebug": { "url": "http://your.web.server" }
}
}
ブレークポイントを指定する
ST2上で止めたい処理の行で Shift + F8 を押し、Add/Remove Breakpoint を実行します。すると行番号の左に●が表示されます。デバッグ実行時に該当する行まで処理がくるとストップして、そこの部分で現在の変数はどうなっているか?といった情報を確認できます。
デバッグを開始する
Shift + F8 でクイックメニューが表示されます。Run Debugging
選択するとデバッグを開始できます。
メニューからデバッグを開始すると、http://your.web.server?XDEBUG_SESSION_START=sublime.xdebugというURLで規定ブラウザ上にページが表示されます。URLは先ほどの.sublime-projectで指定した値です。
注意しなければいけないのは、セッションキーとしてURLに XDEBUG_SESSION_START=sublime.xdebug という値が追加されていることです。デバッガにXdebug使ってるよーと通知するための値です。デバッガのメニューから Rub debugging を実行した場合に自動で追加されますが、表示されたページ上でPOSTや別ページへのリンクにジャンプしようとした時は、その値がクリアされるので注意が必要です。
Chromeエクステンション Xdebug helper の設定でもセッションキーを指定するので、使用する場合には忘れずに。
ショートカットで効率良くデバッグ
ごく基本的なステップ実行によるデバッグをショートカットで実行できます。プラグインのページにもありますが、よく使うものとしては以下でしょうか。
- Ctrl + Shift + F5: 次のブレークポイントまで実行
- Ctrl + Shift + F6: ステップオーバー(次の行へ)
Xdebugでリモートデバッグとなると、Eclipse PDTやNetbeansを使っている例が多数ですし、見やすさや使いやすさは一歩譲りますが、軽量なSublime Text 2でもできるようになるのは嬉しいですね。
[concrete5.6] ローカルで作成したDesigner Content Proのブロックを本番へ移行する
2016年3月24日
cocrete5の強力なプラグイン、Designer Content Proで作成したブロックをローカルから本番環境へ移行するためのポイントを備忘録としてまとめました。
0 Comments1 Minute
[WordPress]寄稿者ユーザーに他者の投稿を表示させない方法
2015年4月9日
寄稿者ユーザーに他者の投稿を表示させない方法について備忘録としてまとめました。フィルターフックとアクションフックを併用して、管理画面の投稿一覧に関する表示制御を行っています。
2 Comments1 Minute
OSX Marvericks にアップデートしたら MAMP PRO が動かなくなった
2013年11月2日
OSX Marverics(以下、Marvericks)になって、便利な機能も増えましたが恒例のごとく「今まで動いていたものが動かない!」というケースも発生したりします。今回は、MAMP PROがそれになったので対処法をメモとして残しておきます。
0 Comments1 Minutes
Guard + Compass + Foundation で環境構築メモ
2013年7月5日
フロントエンド開発でもCUIベースでのビルドツールが充実してきています。RubyベースのGuardで複数のリソースを扱う方法についてメモをまとめました。
0 Comments1 Minutes
RubyでYoutube Data APIの認証、動画検索、取得、更新
2013年2月28日
RubyからGoogle Data APIを操作するバッチを書いていたので、おさらいです。APIとのやりとりを直接書いてみると、マッシュアップ系のWebサービスを作るときの基礎練習として良いですね。
0 Comments2 Minutes
HTTPでXMLを送信したら、The Processing Instruction Target Matching “[xX][mM][lL]” is Not Allowed
2013年2月27日
Rubyで次々とXML送信するバッチスクリプトを書いていたところ、Net::HTTP#putの利用時にステータス400。ふたを開けてみると、なんということはない内容でした。
0 Comments1 Minute
IE9でprototype.js + Shadowbox.jsを使う場合のメモ
2012年6月5日
IE9なら、モダンブラウザに近づくから面倒なIE対応は減るはず、というのは幻想で余計に手間が増えるケースもあります。今回は限定されたシチュエーションですが、JavaScriptライブラリを使う場合の対応をまとめました。
0 Comments1 Minute
[FuelPHP] taskでRailsライクなseedを作る
2012年2月22日
FuelPHPを使い始めているのですが、良いと評価できる点にコマンドラインから実行できる便利なタスクがあります。Railsではrake, railsというコマンドで各種タスクを実行でき、それを踏襲しています。今回はその中でも初期データ作成に便利なseedという機能をFuelPHP上に作ってみました。
0 Comments1 Minute