目次
Laravelの記事一覧は下記
PHPフレームワークLaravelの使い方
Laravelバージョン
動作確認はLaravel Framework 7.19.1で行っています
eclipseでLaravel開発環境を構築する
eclipseでのPHP開発環境は下記で構築しました
eclipseでPHPの開発環境を構築する。デバッグでブレークポイントを付けてステップ実行できるようにする。
本記事は上記が完了している前提で書かれています
これで通常のPHPの開発、デバッグはできるようになりましたが
今回はeclipseでLaravelを使ったPHPアプリケーションの開発をしていきます
ブレークポイントを付けてソース上の好きなところで一時停止してデバッグできるようにします
Laravelプロジェクトを作成する
composerは事前にインストールしておいてください
Composerをインストールする
まずはLaravelプロジェクトを作ります
コマンドラインで
composer create-project --prefer-dist laravel/laravel sample
sampleフォルダができ、その中にたくさんのファイルが出来上がっています
Laravelプロジェクトをeclipseに取り込む
httpd.conf修正
apacheのhttpd.confに下記を追記
eclipseのLaravelプロジェクトフォルダは自分のPC内のパスに置き換えてください
例:C:/eclipse_workspace/sample/public
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
xdebugの設定をしているとeclipseが実行していいですかというプロンプトを出すのでOKを押します
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); }
return view('sample.index', $data)とすることで/sample/resources/views/sample/index.blade.phpが実行されます
第二引数でindex.blade.phpに値を渡しています
index.blade.phpの作成は後述します
(3) /sample/routes/web.phpに下記を追記
Route::get('sample/index', 'SampleController@index');
これでsample/indexというURLにGETリクエストが来た時にSampleControllerクラスのindexメソッドが実行されるようになります
POSTリクエストを処理したい場合はRoute::postを使用します
viewの作成
- /sample/resources/views/sampleフォルダ作成
- /sample/resources/views/sample/index.blade.phpファイル作成
<html>
<head>
<title>sample</title>
</head>
<body>
{{$key}}
</body>
</html>
動作確認
http://localhost/laravelSample/sample/index
にアクセス
ブラウザにvalueと表示されればOK
デバッグ
デバッグをしていきます
SampleControllerのindexメソッド内の行番号をダブルクリックしブレークポイントを付けます
index.blade.phpを右クリック→デバック→PHP Web アプリケーションをクリック
起動URLに
http://localhost/laravelSample/sample/index
を入力してOKボタンをクリック
windows、XAMPP環境だとブレークポイントで止まりました。
しかし、vagrantやdockerではなぜかとまりませんでした。
困った挙句やったこと
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=""/>
消すということをしています