오늘 내가 얻는 PHP Intelephense의 최신 업데이트 이후, 인텔 텔레 펜스는 내 경로 (및 다른 클래스)에 대해 정의되지 않은 기호에 대한 오류를 계속 표시합니다. 이전과 같은 오류는 없으며 귀찮게합니다.
다음은 오류 스크린 샷입니다.
그리고 이것은 내 코드입니다.
Route::group(['prefix' => 'user', 'namespace' => 'Membership', 'name' => 'user.'], function () {
Route::get('profile', 'ProfileController@show')->name('profile.show');
Route::patch('profile', 'ProfileController@update')->name('profile.update');
Route::patch('change-password', 'ChangePasswordController@change')->name('change-password');
Route::get('role', 'ProfileController@getRole')->name('profile.role');
Route::get('summary', 'SummaryController@show')->name('summary');
Route::get('reserved', 'AuctionController@reservedAuction')->name('reserved');
});
실제로이 코드에는 오류가 없지만 정보가 계속 오류를 표시하므로이 문제를 해결할 수있는 방법이 있습니까?
답변
Intelephense 1.3에는 정의되지 않은 유형, 함수, 상수, 클래스 상수, 메서드 및 속성 진단이 추가되었으며 이전에는 1.2에서 정의되지 않은 변수 진단 만있었습니다.
일부 프레임 워크는 사용자에게 편리한 바로 가기를 제공하는 방식으로 작성되었지만 정적 분석 엔진이 런타임시 사용 가능한 기호를 발견하기 어렵습니다.
https://github.com/barryvdh/laravel-ide-helper 와 같은 스텁 생성기는 여기의 차이를 메우는 데 도움이되며이를 Laravel과 함께 사용하면 쉽게 발견 할 수있는 기호에 대한 구체적인 정의를 제공함으로써 많은 잘못된 진단을 처리 할 수 있습니다.
여전히 PHP는 매우 유연한 언어이며 코드 작성 방법에 따라 다른 정의되지 않은 기호가있을 수 있습니다. 이러한 이유로, 1.3.3부터 인텔리전스에는 작업 공간 및 코딩 스타일에 맞게 정의되지 않은 기호의 각 범주를 활성화 / 비활성화하는 구성 옵션이 있습니다.
이러한 옵션은 다음과 같습니다.
intelephense.diagnostics.undefinedTypes
intelephense.diagnostics.undefinedFunctions
intelephense.diagnostics.undefinedConstants
intelephense.diagnostics.undefinedClassConstants
intelephense.diagnostics.undefinedMethods
intelephense.diagnostics.undefinedProperties
intelephense.diagnostics.undefinedVariables
intelephense.diagnostics.undefinedVariables
버전 1.2 동작을 제외하고 이들 모두를 false로 설정하면 VSCode 설정 UI를 참조하여를 검색하십시오 intelephense
.
답변
답변
다운 그레이드 할 필요는 없습니다.
설정에서 정의되지 않은 기호 진단을 비활성화하거나 “intelephense.diagnostics.undefinedSymbols”: false입니다.
또는 라 라벨 파사드에 대한 스터브를 추가하는 ide 도우미를 사용하십시오. 참조 https://github.com/barryvdh/laravel-ide-helper를
답변
use Illuminate\Support\Facades\Route;
경고 해당 네임 스페이스를 가져온 후 사라졌습니다.
버전
- Larvel 6+
- vscode 버전 1.40.2
- PHP 정보 1.3.1
답변
1.3.1 고정.
확장 프로그램을 업데이트하기 만하면됩니다.
답변
이 솔루션은 문제가 Facades로 제한되어 있고 Laravel 5.5 이상을 실행중인 경우 도움이 될 수 있습니다.
laravel-ide-helper 설치
composer require --dev barryvdh/laravel-ide-helper
AppServiceProvider
헬퍼 클래스를 등록하려면 이 조건문을 추가하십시오 .
public function register()
{
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
// ...
}
그런 다음 php artisan ide-helper:generate
IDE가 Facades를 이해하는 데 도움이되는 파일을 생성하기 위해 실행 하십시오. Visual Studio Code를 다시 시작해야합니다.
참고 문헌
https://laracasts.com/series/how-to-be-awesome-in-phpstorm/episodes/16