Edited at

eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)


eclipseでLaravel開発環境を構築する

eclipseでのPHP開発環境は下記で構築しました

eclipseでPHPの開発環境を構築する。デバッグでブレークポイントを付けてステップ実行できるようにする。

本記事は上記が完了している前提で書かれています

これで通常のPHPの開発、デバッグはできるようになりましたが

今回はeclipseでLaravelを使ったPHPアプリケーションの開発をしていきます

ブレークポイントを付けてソース上の好きなところで一時停止してデバッグできるようにします


Laravelプロジェクトを作成する

PHPとcomposerは事前にインストールしておいてください

まずはLaravelプロジェクトを作ります

コマンドラインで

composer create-project --prefer-dist laravel/laravel sample

sampleフォルダができ、その中にたくさんのファイルが出来上がっています


Laravelプロジェクトをeclipseに取り込む


  1. メニューバーのファイル→インポートをクリック

    a.png


  2. 既存のComposerプロジェクトをクリック

    b.png


  3. お好きなプロジェクト名を入力し(今回はsample)、参照ボタンから先ほど作成されたsampleフォルダを選択します→完了ボタンクリック

    c.png



httpd.conf修正

apacheのhttpd.confに下記を追記

eclipseのLaravelプロジェクトフォルダは自分のPC内のパスに置き換えてください

例:C:/eclipse_workspace/sample/public


httpd.conf

Alias /laravelSample "eclipseのLaravelプロジェクトフォルダ/public"

<Directory "eclipseのLaravelプロジェクトフォルダ/public">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>


Controllerの作成


  1. コマンドラインで

    cd sample

    php artisan make:controller SampleController --resource

    eclipseプロジェクトを右クリック→リフレッシュ

    /sample/app/Http/Controllers/SampleController.phpが現れます


  2. /sample/app/Http/Controllers/SampleController.phpのindexメソッドを下記に修正

    public function index()

    {

    $data = ['key' => "value"];

    return view('sample.index', $data);

    }


  3. /sample/routes/web.phpに下記を追記

    Route::get('sample/index', 'SampleController@index');



viewの作成


  1. /sample/resources/views/sampleフォルダ作成

  2. /sample/resources/views/sample/index.blade.phpファイル作成


index.blade.php

<html>

<head>
<title>sample</title>
</head>
<body>
{{$key}}
</body>
</html>


動作確認

http://localhost/laravelSample/sample/index

にアクセス

ブラウザにvalueと表示されればOK


デバッグ

デバッグをしていきます

SampleControllerのindexメソッド内の行番号をダブルクリックしブレークポイントを付けます

http://localhost/laravelSample/sample/index

にアクセスすると

windows、XAMPP環境だとブレークポイントで止まりました。

しかし、vagrantdockerではなぜかとまりませんでした。


困った挙句やったこと

eclipseを見ると

.buildpath

というファイルがプロジェクト直下にあります。今回だと/sample/.buildpath

composer.jsonのautoloadとrequireを元につくられたビルドパスです

eclipseのプロジェクトを右クリック→プロパティ→PHP>ソースパス>ビルドパスで確認できます

この.buildpathを開き、

<buildpathentry kind="src" path=""/>

という1行を追記しました

これでhttp://localhost/laravelSample/sample/indexにアクセスするとvagrantでもdockerでもブレークポイントで止まりました

ただ、.buildpathに<buildpathentry kind="src" path=""/>を追記すると、当然ビルドパスはエラーを吐きます

ソースを開くとクラス名の下に赤い波線が出ています

.buildpathから<buildpathentry kind="src" path=""/>の1行を消しました

ビルドパスのエラーは消えました

これでもう一回http://localhost/laravelSample/sample/indexにアクセスしてみるとvagrantでもdockerでもブレークポイントで止まりました

1回ブレークポイントで止めてしまえば、<buildpathentry kind="src" path=""/>の1行が無くても、eclipseが起動している間はブレークポイントで止まるようです

仕方がないので、1日1回デバッグ開始時に<buildpathentry kind="src" path=""/>追記、1回デバッグしたら<buildpathentry kind="src" path=""/>消すということをしています