Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

PHPでVim使って開発していてvar_dump()を唱えているならVim Plugin のvdebugを使ってみろって

$
0
0

ずっと自分はPHPでvar_dumpを唱えていました。
でも、もうvar_dump()って唱えたくないんですよ。
間違えて

/path/to/hoge
// var_dump($hgoe);

とかコミットしてしまうじゃあないですか・・・・
だしタイプするのが、億劫なんですよ。

vdebugがあるじゃないか!!!

元々はVim + Vdebug + Xdebug でPHPのリモートデバッグを読んで
「vimでもbreakpoint貼れるのかー。じゃあやってみよう」
ということでやってみた時のメモになります。

環境

  • Scientific Linux 6.4
  • CentOS 6.4

参考にしたサイト

事前準備に必要なもの

  • vim 7.2 以降(で自分は試した)
  • PHP 5.4.32 (5.6.0)でもやった
    • 自分はphpenvで実行しています
  • PHP extension Xdebug
    • phpenvで入れた場合はデフォルトではいっています
  • chrome (chromeからvdebugを起動します)
  • python 2.6 以上

vim にvdebugをインストールする

NeoBundleでインストールしています

# ~/.vimrc

" PHP debugger
NeoBundle 'joonty/vdebug'

補足: OSの環境がutf-8じゃない方への設定

utf-8なサーバーで実行する場合vdebugがエラーになる可能性があります。
理由はvdebugの各種breakのマーカーなどの設定がutf-8じゃないと認識できない文字列をデフォルトで設定しているからです。

その場合は下記をvimrcに追加してください

# ~/.vimrc
letg:vdebug_force_ascii =1

教えてくれたH.Nさんサンクス!!!

Xdebugの設定の確認

まずはXdebugの設定を確認しましょう

# $PHPENV_HOME/phpenv/versions/{PHPバージョン}/lib64/php/modules/xdebug.soEnablexdebugextensionmodulezend_extension=/usr/lib/phpenv/versions/5.4.32/lib64/php/modules/xdebug.so# 最低限これだけ入れておいてください;seehttp://xdebug.org/docs/all_settingshtml_errors=onxdebug.remote_enable=onxdebug.remote_handler=dbgpxdebug.remote_host=localhostxdebug.remote_port=9000

chrome-extensionのXdebug-helperを入手

ブラウザでリロードしてXDebug用のcookie発行しての実行になります
joonty/vdebug自体はこれがなくても動作すると思いますが、自分はよくわかりませんので、そこらへんはすごい人にお任せします

おそらく下記の設定をすればいけると思いますが、私は試していませんので割愛させていただきます。

#vim で help vdebugとするとみえる

r something similar (version may differ). You are technically ready to go, but
there's one extra step that I like to do to make command line debugging niceand quick. I create a bash script called "php-xdebug", which automaticallystarts the debugger engine. The script looks like this (unix only): >#!/bin/bashexport XDEBUG_CONFIG="idekey=xdebug"/usr/bin/php "$@"<Run "chmod +x" on the file and put it somewhere in your $PATH list, and you canthen use this instead of php when debugging. For instance, instead of "phpmyscript.php", run "php-xdebug myscript.php" to start the debugger session.You are now officially ready to start debugging with PHP. However, if you've
become unstuck at any point then there are plenty of Google tutorials on
setting up Xdebug, or you can email me and I'll do my best to help.

Xdebug-helperのオプション設定をする

一人でローカル環境を構築する場合はこの設定は必要ありません。
複数人でデバックする場合は個々にIDE_KEYを設定しないと上手くdebugできません。

chromeから

chrome://extensions/

でxdebug-helperのオプションをクリックしてください

chrome-extension設定

IDE_KEYを設定する

デフォルトはXDEBUG_ECLIPSEです。

IDE_KEY項目のオプションを

  • other
  • 任意のIDE_KEY

を設定してください

xdebug-helper オプション

これで前準備は完了です。

起動してみる

vimでファイルを開いてbreakpointを貼りたいところで fn + F10をおしてください

vdebugでbrealpointを貼った状態

その後 fn + F5を押すとdebugの待ち状態になります。
デフォルトだと20秒間何もアクションが起こらないとErrorになります。
(きっとどこかで設定できるはず)

vdebugのdebug待ち状態になったところ

chrome側のxdebug-helperを Debugに変更する

xdebug-helperのモードを「Debug」にします

xdebug-helperをONにする

これでchromeのブラウザをリロードしてください
下記のような感じになります。

vdeub 起動した状態

vdebugの使い方

基本は Vim + Vdebug + Xdebug でPHPのリモートデバッグに記載されていますのでこちらを見てください。

コマンド説明
fn + F10breakpointを貼る
fn + F5デバッガの起動
fn + F3ステップイン
fn + F2ステップアウト
fn + F9fn + F10で設定した場所までの実行
fn + F7デバックの終了 (debug画面を :qとかで終了すると次回起動時にエラーになるので注意)

これでPHPで var_dump()の魔法を唱えなくてもいい第一歩が踏み出せそうです。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>