Laravel 디버깅 환경 구성
라라벨로 개발할 때 디버깅에 유용한 여러 도구와 환경을 구성하는 방법을 설명합니다.
laravel Debugbar
composer 로 설치해 줍니다.
$ composer require barryvdh/laravel-debugbar --dev
auto discovery 가 되지만 개인적으로는 선호하지 않으므로 config/app.php 의 Provider 에 다음 클래스를 등록합니다.
Barryvdh\Debugbar\ServiceProvider::class,
설정 파일을 퍼블리싱합니다.
$ php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
laravel octane 을 사용할 경우 config/octane.php 에 다음 내용을 추가해야 합니다.
'flush' => [ \Barryvdh\Debugbar\LaravelDebugbar::class, ],
IDE Helper
laravel 의 eloquent ORM 같은 경우 magic method 가 많으므로 PHPStorm 같은 IDE 에서는 없는 method 를 사용한다는 경고가 많이 나옵니다.
이런 경고는 실제 사용에는 지장이 없으므로 개발자가 경고창에 익숙해지고 당연하게 여기게 되며 그로 인해 여러 경고를 무시하는 나쁜 습관이 들 수 있으며 phpstan 이나 psalm 같은 정적 분석기 도입도 어렵게 됩니다.
laravel ide helper 는 IDE 에서 이런 오류를 내지 않도록 laravel 헬퍼와 model 에 대해 phpDoc 을 만들어 줍니다.
설치
$ composer require --dev barryvdh/laravel-ide-helper
설치후에 AppServiceProvider.php 에 ide-helper 등록
public function register() { if ($this->app->isLocal()) { $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); } }
사용
model 을 추가/변경하거나 새로운 외부 패키지를 끌어와서 사용하는등 변경이 생기면 다음 명령어를 실행해주면 됩니다.
$ php artisan ide-helper:generate $ php artisan ide-helper:meta $ php artisan ide-helper:models -N
실제로는 매번 명령어를 치기 어려우므로 composer.json 에 다음 내용을 추가해서 사용합니다.
"post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force", "@php artisan ide-helper:generate", "@php artisan ide-helper:meta", "@php artisan ide-helper:models -N" ],
그러면 composer update 마다 ide-helper 명령어를 실행합니다.
ide-helper 가 생성하는 파일들은 git 에 포함될 필요가 없으므로 다음 내용을 .gitignore 에 추가해 줍니다.
- _ide_helper.php
- _ide_helper_models.php
- .phpstorm.meta.php
echo _ide_helper.php >> .gitignore echo _ide_helper_models.php >> .gitignore echo .phpstorm.meta.php >> .gitignore