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.undefinedVariables
1.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:generate
IDE 파사드비주얼 스튜디오 코드
레퍼런스
https://laracasts.com/series/how-to-be-awesome-in-phpstorm/episodes/16
https://github.com/barryvdh/laravel-ide-helper
, 어떤 이유에선지, 어떤 이유에선지,vendor
VS ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
"intelephense.files.exclude": [
"**/.git/**",
"**/.svn/**",
"**/.hg/**",
"**/CVS/**",
"**/.DS_Store/**",
"**/node_modules/**",
"**/bower_components/**",
"**/vendor/**", <-- remove this line!
"**/resources/views/**"
],
를 포함한 vendor
Intlephense 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-client
Intelephense(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 |