PhpStorm(IntelliJ IDEA)でLaravelプロジェクトの新規作成からローカルデバッグ環境構築まで


## 動作環境
Windows 7
IntelliJ IDEA 2018.3.4
PHP 7.3.2
Xdebug v2.7.0RC2
Laravel Framework 5.8.2

## 前提条件
- IntelliJ IDEAにPHPプラグインがインストールされていること


## 背景
普段Unity+Riderで開発をしています
デバッグ時にはデバッグボタン押すだけでブレークポイントが有効になりステップ実行が可能になります
効率的にデバッグをこなす上でブレークポイントの有効可は必須なので今回の環境構築を行いました
1クリックでローカルサーバの起動→デバッグ開始できるようにします

## PHPのインストール
[PHP download](http://php.net/downloads.php)
- Cドライブ直下に展開 (C:\php-7.3.2)
- php.ini-developmentをコピーしてphp.iniにリネーム
- php.iniないの下記設定のコメントアウトを解除
 
```
;extension_dir = "ext"
;extension=openssl
;extension=mbstring
;extension=pdo_mysql
```

## Xdebugのインストール
[Xdebug](https://xdebug.org/wizard.php)

- ```php --info```で出力される情報をコピーして上記サイトに貼り付け```Analyse my phpinfo() output```をクリック
- 環境に合わせたxdebugのダウンロードリンクが出てくるのでダウンロード(自分の環境ではphp_xdebug-2.7.0RC2-7.3-vc15-x86_64.dll)
- C:\php-7.3.2\ext配下にコピー
- php.iniに```zend_extension = php_xdebug-2.7.0RC2-7.3-vc15-x86_64.dll```を追記

- ext\php_xdebug~にするとデバッグ時にエラーが出たのでextは抜きました


## PhpStorm(IntelliJ IDEA)でLaravelプロジェクトの新規作成
- Create New Project -> PHP Composer Project
![2.png](https://qiita-image-store.s3.amazonaws.com/0/31507/2dfa0baf-c34a-f4c3-5a91-89a3a8527aa1.png)

- Project name: laravel-sample
- composer.pharにチェック
- Download composer.pharにチェック
- PHP Interpriter: PHP(7.3.2)を選択
- Filter package: laravel/laravelを入力して一覧から選択してFinish

![3.png](https://qiita-image-store.s3.amazonaws.com/0/31507/78533181-6c4d-7179-8263-8eece6f48ffb.png)

## 起動確認

```
php artisan key:generate # APP_KEYの生成
php artisan serve
```
でローカルサーバを起動し[localhost:8000](http://localhost:8000)にアクセスして起動できることを確認します。

## Built-in Web Serverの設定
```php artisan serve```でローカルサーバ起動しましたがXdebugを使ってデバッグでするためPhpStormで設定を行います

- Run -> Edit Configurations...
- PHP Built-in Web Serverを追加
    -　Name: Build-in Web Server 
    -　Host: localhost
    -　Port: 8000
    -　Document root:<プロジェクトのディレクトリ>/public
    -　Interpreter options:
        ***-dxdebug.remote_enable=1 -dxdebug.remote_autostart=1 -dxdebug.remote_host=localhost -dxdebug.remote_port=9000***
![10.png](https://qiita-image-store.s3.amazonaws.com/0/31507/67806960-91d8-25ae-5f50-8c0dba217e05.png)

## xdebugの設定
- File -> Settings -> PHP
    - CLI Interpriter: PHP(7.3.2)
![5.png](https://qiita-image-store.s3.amazonaws.com/0/31507/7a77996c-9e76-3c58-ab94-1fad1d701216.png)

- File -> Settings -> PHP -> Debug -> Xdegug
    - Debug port: 9000 
- ![6.png](https://qiita-image-store.s3.amazonaws.com/0/31507/01c26fce-9692-2639-4895-51c848cb7e2b.png)

- File -> Settings -> PHP -> Servers
    - 「＋」ボタンでServer追加
    - Name: localhost
    - Host: localhost
    - Port: 8000
    - Debugger: xdebug
    - Use path mappingsにチェック
    - 作成したプロジェクトのルートディレクトリのAbsolute path on the Serverに同じパスを入力
![8.png](https://qiita-image-store.s3.amazonaws.com/0/31507/15226dd8-0960-6178-4a9a-82255b05f170.png)

## デバッグ実行
- Run -> RunでBuilt-in Web Serverで設定したサーバを選択して実行

または

- 赤枠のマークをクリックして実行
![11.png](https://qiita-image-store.s3.amazonaws.com/0/31507/e6cc98c6-7024-08f5-eaf6-221b84f15139.png)

ブレークポイントを仕掛けて[http://localhost:8000](http://localhost:8000)にアクセスすると下の画像のようにステップ実行が可能となっているはずです
![12.png](https://qiita-image-store.s3.amazonaws.com/0/31507/cab7b62e-cd5d-dd0d-8ed8-bc1f0f010b3a.png)

受話器のマークが赤枠のようになっていないことに気をつけてください
![13.png](https://qiita-image-store.s3.amazonaws.com/0/31507/68bed9a5-eba4-d985-5a10-018cbda5f2f3.png)


***良いデバッグライフを(๑•̀ㅂ•́)و✧***