最終更新日:2019‐09-28
Laravelを勉強するにあたって、PHPのIDEで良いのないかなぁと思っていたところPhpStormを触ってとてもいい感じだったので使ってみました。
ブレイクがちゃんと止まるまで、いくつかハマりポイントがあったので備忘録として残します。先にハマりポイントを2つ挙げるので念頭に置いてセットアップすると幸せになれるかもしれません。
ハマリポイント その1
PhpStormの公式サイトで以下のような記載がありますが…
PHP 5.3以降では、zend_extensionのみを使用する必要があります。zend_extension_ts , zend_extension_debugまたは extensionは使用しないでください。
実際、php.iniに「zend_extension」のみを記述してもデバッグでブレイクできませんでした。(私の理解が間違っているのかもしれませんが…。)
ハマリポイント その2
後述しますが「構成の編集」ではルータースクリプトを設定しないとブレイクで止まらないです。ここもポイントです。
これら2つのハマりポイントに注意しながら、セットアップを解説していきます。
環境構築手順
それでは始めていきます。XAMPPとPhpStormとXdebugでLaravelのアプリケーションをデバッグできるところまで環境設定していきます。環境はWindows10を前提としています。
XAMPPのインストール
まずは何も考えずXAMPPをダウンロードしてインストールする。展開先などはすべてデフォルトのままで。

Composerをインストール
2番めのインストールには「Composer」。「Composer」はパッケージ管理ツールです。こちらからダウンロードしてインストールします。例によってインストールは何も考えずデフォルトの設定値のままでOKです。

インストールが終わったらコマンドプロンプトからcomposerが動作することを確認します。ロゴが表示されたらOKです。

PhpStormをインストール
PhpStormをダウンロードしてインストール。こちらも何も考えずデフォルトの設定のままでインストールします。

PhpStormを日本語化する
PhpStormは基本的に英語のメニューですので、これを日本語化します。eclipseでお馴染みの Pleiadesのサイトから日本語化ツールをダウンロードしてきます。

ダウンロードしたら、「pleiades-win.zip」を解凍して「setup.exe」を実行します。日本語化したいモジュールを聞いてくるのでPhpStormの場所を指定し、「日本語化する」をクリック。正常に終了したらOKです。

phpinfoの情報をファイル出力する
XAMPPをインストールすると、PHP CLI(Command Line Interface)が利用できるようになっていますので、phpinfoの情報をコマンドプロンプトからファイル出力します。コマンドプロンプトを立ち上げて以下のコマンドを実行します。
php -info > phpinfo.txt
カレントディレクトリにphpinfo.txtが作成されます。出力された中身は以下のような感じになります。(一部のみ表示しています。)

Xdebugのダウンロード
Xdebugをダウンロードして、XAMPPの所定の場所へ配置します。まずはXdebugの公式サイトを表示し、先ほど取得したphpinfo( phpinfo.txtの中身 )の情報を貼り付けます。
貼り付けたら少し下にある「Analyze my phpinfo() output」のボタンをクリックします。

すると、phpinfoの情報が解析され、最適なXdebugのモジュールがダウンロード可能になります。リンクをクリックするとダウンロードが始まりますが、「危険を及ぼす・・・」と警告が表示されますが、迷わず「保存」ボタンをクリックして保存します。

xdebug.dllを配置する
ダウンロードしたxdebug.dllをXAMPPの所定の場所へ格納します。格納先は「c:\xampp\php\ext」です

php.iniの設定を変更する
「C:\xampp\php」にある、php.iniファイルの末尾に以下の記述を追記します。
「php_xdebug-2.7.2-7.3-vc15-x86_64.dll」の部分はダウンロードしてきたXdebugのファイル名に合わせます。
ハマりポイントの1つ目です。 「zend_extension」のみを記述してもブレイクしてくれませんのでご注意を。(知ってる人からすれば当たり前のことなのかもしれませんけどね。)
ちなみに「xdebug.remote_log="C:\xampp\php\log\xdebug.log"」と設定していますが、「 C:\xampp\php\log\xdebug.log 」は初期状態では存在しませんので、自分でフォルダを作成しています。
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug-2.7.2-7.3-vc15-x86_64.dll"
xdebug.remote_log="C:\xampp\php\log\xdebug.log"
xdebug.auto_trace = 1
xdebug.trace_output_dir = "C:\xampp\trace"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.idekey = "PHPSTORM"
イメージはこんな感じです。

PhpStormで新規Laravelプロジェクトを作成する
PhpStormで新規にLaravelのプロジェクトをComposerを使って作成します。メニューバーから[ファイル]→[新規プロジェクト]を選択してください。設定は以下のように設定します。ロケーションは保存したい好きな場所を選んでください。

以下のようにCompletelyの文字が表示されたら完成です。

プロジェクトの設定をします。[ファイル]→[設定]をクリックし、以下の設定画面でサーバーの設定をします。
まずは「PHP」の項目絡みていきます。CLIインタープリターが設定されていない場合は、設定しましょう。

次に「サーバー」。「+」ボタンを押して追加します。

その下に「デバッグ」がありますが、ここは眺めるだけにしておきましょう。デフォルトでポートが9000になっていることを確認すればOK

構成へ戻ります。「構成の編集」ボタンをクリックして、デバッグ構成を設定します。「ルートスクリプトを使用」にチェックを入れ、先ほど作成したプロジェクトのServer.phpを設定します。
今回の場合、「C:\myLara\server.php」という設定を行いました。ハマりポイントの2つ目です。


早速デバッグしてみましょう。ブレークを貼ります。

サーバーを動かして ブラウザで http://localhost/ へ接続してみましょう。緑の再生ボタンを押下します。ここで注意したいのが、電話のようなアイコンが停止状態(赤い四角の状態)になっていないことを確認してください。その状態だと、ブレイクポイントで停止しません。

無事、ブレイクポイントで停止しました!

まとめ
- XAMPPをインストールする
- Composerをインストール
- PhpStormをインストールする
- Xdebugのモジュールを配置する
- php.iniを設定する
- PhpStormのサーバー設定をする
- PhpStormのデバッグ構成設定をする
という感じです。PhpStormなかなか軽快に動いてくれて良い感じです。
技術の進化についていけていないシステムエンジニア。浅く広く、何でも大体はこなせるエンジニアで重宝されてる(つもり)。でもやっぱり特化した武器欲しい。
備忘録として記事を投稿していますが、少しでも誰かの助けになればと思います。
最近はプロジェクトでReact(TypeScript )を触っています。
趣味でギター弾きます。