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