Visual Studio 코드 PHP Intlephense가 계속 필요하지 않은 오류를 표시함
오늘 받은 PHP Intlephense의 최신 업데이트 후, Interlephense는 내 루트(및 다른 클래스)에 대해 정의되지 않은 심볼에 대한 오류를 계속 표시하는데, 이전에도 이와 같은 오류가 없었고, 신경이 쓰입니다.
에러 스크린샷을 다음에 나타냅니다.
그리고 이게 내 코드야.
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');
});
사실 이 코드에는 오류가 없는데 인터펜스에 오류가 계속 나오는데 어떻게 고칠 수 있을까요?
Intlephense 1.3에서는 정의되지 않은 유형, 함수, 상수, 클래스 상수, 메서드 및 속성 진단이 추가되었습니다.이전에는 1.2에서는 정의되지 않은 변수 진단만 있었습니다.
일부 프레임워크는 사용자에게 편리한 단축키를 제공하지만 정적 분석 엔진이 런타임에 사용할 수 있는 기호를 발견하는 것을 어렵게 하는 방식으로 작성됩니다.
https://github.com/barryvdh/laravel-ide-helper과 같은 stub generator는 이 차이를 메우는데 도움이 되며, Larabel과 함께 사용하면 쉽게 발견할 수 있는 심볼의 구체적인 정의를 제공함으로써 잘못된 진단의 많은 부분을 처리할 수 있습니다.
그러나 PHP는 매우 유연한 언어이며 코드 작성 방법에 따라 잘못된 정의되지 않은 심볼의 인스턴스가 있을 수 있습니다.따라서 1.3.3 이후부터 interlephense에는 워크스페이스 및 코딩 스타일에 맞게 정의되지 않은 기호의 각 카테고리를 활성화/비활성화하는 구성 옵션이 있습니다.
가 있습니다.intelephense.diagnostics.undefinedTypes intelephense.diagnostics.undefinedFunctions intelephense.diagnostics.undefinedConstants intelephense.diagnostics.undefinedClassConstants intelephense.diagnostics.undefinedMethods intelephense.diagnostics.undefinedProperties intelephense.diagnostics.undefinedVariables
false를 제외한 한다.intelephense.diagnostics.undefinedVariables1.2로 하다하여 VSCode UI를 하십시오.intelephense.
1 IMO가.「 1 . 3 . 0 」 함 IMO 。
버전 1.2.3으로 다운그레이드하면 문제가 해결됩니다.
는 ★★★★★★★★★★★★★★★★★★★★에 있다.
- 라라벨 5.1
- PHP 5.6.40
use Illuminate\Support\Facades\Route;
경고 해당 네임스페이스를 가져온 후 사라졌습니다.
버전
- 라벨 6 이상
- vscode 버전 1.40.2
- php interlephense 1.3.1
이 솔루션은 문제가 Facades에 한정되어 있으며 Larabel 5.5 이상을 실행하고 있는 경우에 도움이 됩니다.
larabel-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:generateIDE 파사드비주얼 스튜디오 코드
레퍼런스
https://laracasts.com/series/how-to-be-awesome-in-phpstorm/episodes/16
https://github.com/barryvdh/laravel-ide-helper
, 어떤 이유에선지, 어떤 이유에선지,vendorVS ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
"intelephense.files.exclude": [
"**/.git/**",
"**/.svn/**",
"**/.hg/**",
"**/CVS/**",
"**/.DS_Store/**",
"**/node_modules/**",
"**/bower_components/**",
"**/vendor/**", <-- remove this line!
"**/resources/views/**"
],
를 포함한 vendorIntlephense 1.5.4입니다.
다운그레이드는 필요 없습니다.다음 작업을 수행할 수 있습니다.
설정에서 정의되지 않은 심볼 Diagnostics를 비활성화하거나("intlephense.diagnostics.undefinedSymbols": false.
또는 라라벨 패시드에 stub을 추가하는 ide 도우미를 사용합니다.https://github.com/barryvdh/laravel-ide-helper 를 참조해 주세요.
클래스를 는, 커맨드(를 .Index Workspace
1.3.1 수정.
내선번호 업데이트만 하면 됩니다.
한 에러를 만 하면 됩니다.settings.json다음을 추가합니다.
"intelephense.diagnostics.undefinedTypes": false
버전 1.7.1(2021-05-02) 이후 다른 솔루션이 있습니다.
이제 interlephense가 종속성을 찾아야 하는 위치를 알 수 있습니다. 예를 들어 가장 일반적인 벤더입니다.
"intelephense.environment.includePaths": [
"vendor"
],
게다가 VSCode 규칙도 무시합니다.
"files.exclude": {
"**/vendor": true
},
여기 changelog에서 더 많이 읽을 수 있습니다.
해결 방법은 다음과 같습니다.
확장 설정을 엽니다.
변경할 변수를 검색하여 선택 취소/체크합니다.
고려해야 할 변수는 다음과 같습니다.
intelephense.diagnostics.undefinedTypes
intelephense.diagnostics.undefinedFunctions
intelephense.diagnostics.undefinedConstants
intelephense.diagnostics.undefinedClassConstants
intelephense.diagnostics.undefinedMethods
intelephense.diagnostics.undefinedProperties
intelephense.diagnostics.undefinedVariables
이것은 편집자가 Larabel을 이해할 수 있는 설정입니다.
이 모든 것을 수동으로 설정하는 경우는, 다음의 repo 를 참조해 주세요.VS 코드와 Php Storm 모두 대응합니다.
또는 당신이 원한다면 이 패키지를 다운로드 할 수 있습니다.(작성했습니다)는 글로벌 설치를 권장합니다.
그냥 ''를 실행해 주세요.andylaravel setupIDE첫 번째 리포트에 따라 모든 것이 설정됩니다.
아니요, 이 오류는 Intlephense 확장이 자동으로 갱신된 후에만 발생합니다.
이 문제를 해결하려면 Intelephense 확장에서 "다른 버전 설치"를 클릭하여 이전 버전으로 다운그레이드할 수 있습니다.버전 1.2.3에서는 에러는 없습니다.
v1.7.1에서도 같은 문제가 발생.내장 기능에 에러가 표시되었습니다.하지만 방금 해결책을 찾았습니다: 확장 설정으로 이동합니다.@ext:bmewburn.vscode-intelephense-clientIntelephense(Diagnostics)를 하나씩 비활성화하면 오류 표시가 중지됩니다.
이러한 문제를 겪고 있는 모든 체크세트를 무효로 하는 것에 불안감을 느끼고 있는 유저에게는, 독자적인 커스텀 서명을 Intellephense에 건네주는 방법이 있습니다.
Interlephese repo의 코멘트에서 복사(@KapitanOczywisty):
https://github.com/bmewburn/vscode-intelephense/issues/892#issuecomment-565852100
단일 워크스페이스의 경우 매우 간단합니다.
.php모든 시그니처가 포함된 파일 및 interlephense가 인덱스를 작성합니다.stub를 글로벌하게 추가하고 싶은 경우에도 가능합니다만, 이것이 의도한 기능인지 아닌지는 잘 모르겠습니다.라 할지라도
intelephense.stubs잘못된 값에 대해 경고를 보냅니다. 실제로 폴더 이름을 입력할 수 있습니다.{ "intelephense.stubs": [ // ... "/path/to/your/stub" ] }주의: 스터브는 이 설정 변경으로 새로 고쳐집니다.
내장 스탭은, https://github.com/JetBrains/phpstorm-stubs 를 참조해 주세요.
저 같은 경우에는 dspec이 필요했어요.describe,beforeEach,it...오류로 강조표시되지 않도록 파일을 서명과 함께 포함시켰습니다./directories_and_paths/app/vendor/bin/dspec필요한 기능 선언이 있는 VSCode의 작업 공간 설정에 포함되었습니다.
function describe($description = null, \Closure $closure = null) {
}
function it($description, \Closure $closure) {
}
// ... and so on
저도 같은 문제가 있었는데, 다음과 같은 문제가 해결된 것 같습니다.
a) 최신 버전 1.3.5로 업데이트하고 모든 진단 설정을 다시 활성화.
난 여전히 메시지를 받고 있었다.
b) 의존 라이브러리가 있는 벤더 폴더를 워크스페이스에 추가
이것으로 문제가 해결된 것 같습니다.
use Illuminate\Support\Facades\Route;
위의 네임스페이스 추가
web.php에서
이 코드 줄 추가
use Illuminate\Support\Facades\Route;
이것으로 완료했습니다.Auth 에러가 발생했을 경우는, 이 코드 라인을 추가합니다.
use Illuminate\Support\Facades\Auth;
감사해요.
나는 최근에 내 문제를 해결했다.file > preferences로 이동하여 intelliphense를 검색하면 제외할 파일이 있는 섹션이 나타납니다.vendor폴더가 추가되었습니다.삭제했습니다. 이제 모든 라라벨 파일이 색인화되었습니다.
언급URL : https://stackoverflow.com/questions/59149877/visual-studio-code-php-intelephense-keep-showing-not-necessary-error
'it-source' 카테고리의 다른 글
| Vuex: 디스패치에서는 약속을 반환하여 체인으로 묶을 수 있습니까? (0) | 2022.10.30 |
|---|---|
| 입력 유형="텍스트"에서 원하는 대로 변경 사항을 추적하는 가장 좋은 방법은 무엇입니까? (0) | 2022.10.30 |
| null은 객체입니까? (0) | 2022.10.30 |
| Synology NAS의 속편을 통해 Mariadb에 연결 (0) | 2022.10.30 |
| 긴 텍스트 열이 있는 테이블을 JSON 배열로 변환 (0) | 2022.10.30 |



