it-source

Visual Studio 코드 PHP Intlephense가 계속 필요하지 않은 오류를 표시함

criticalcode 2022. 10. 30. 11:08
반응형

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

버전 1.2.3으로의 다운그레이드

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

반응형