දෘශ්‍ය ස්ටුඩියෝ කේතය PHP ඉන්ටෙලිෆන්ස් දිගටම පෙන්වීම අත්‍යවශ්‍ය දෝෂයක් නොවේ


142

අද මට ලැබෙන PHP ඉන්ටෙලිෆෙන්ස් හි නවතම යාවත්කාලීනයෙන් පසුව, ඉන්ටෙලිෆෙන්ස් මගේ මාර්ගය සඳහා (සහ වෙනත් පංතියේ) නිර්වචනය නොකළ සංකේතයක් සඳහා දෝෂයක් පෙන්වයි, මීට පෙර මෙවැනි දෝෂයක් නොතිබූ අතර එය මට කරදර කරයි.

දෝෂ තිර රුව මෙන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

මෙය මගේ කේතයයි:

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');
});

ඇත්ත වශයෙන්ම මෙම කේතයේ කිසිදු දෝෂයක් නොමැත, නමුත් ඉන්ටර්පෙල්ස් විසින් දෝෂයක් පෙන්වයි, එබැවින් මෙය නිවැරදි කිරීමට ක්‍රමයක් තිබේද?


යෙදුමේ නිකුත් කිරීමේ පෝලිමේදී
github.com/bmewburn/vscode-intelephense/issues/885

ඔබගේ මාර්ගයෙන් ඔබට නිර්වචනය නොකළ දෝෂයක් ලැබෙන්නේ නම් api.php, @ user12483351 හි පිළිතුර පහත බලන්න. ඒක මට ස්ථිර කළා. මම ඉන්ටලෙෆීස් 1.3.6 හි සිටිමි.
dotNET

Answers:


103

ඉන්ටෙලිෆෙන්ස් 1.3 විසින් නිර්වචනය නොකළ වර්ගය, ක්‍රියාකාරිත්වය, නියතය, පන්ති නියතය, ක්‍රමය සහ දේපල රෝග නිර්ණය එකතු කරන ලදී.

සමහර රාමු ලියා ඇත්තේ පරිශීලකයාට පහසු කෙටිමං සපයන ආකාරයට වන නමුත් ස්ථිතික විශ්ලේෂණ එන්ජින්ට ධාවන වේලාවේ ඇති සංකේත සොයා ගැනීම දුෂ්කර කරයි.

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.undefinedVariables1.2 අනුවාදයේ හැසිරීම ලබා දෙනු ඇත. VSCode සැකසුම් UI බලන්න සහ සොයන්න intelephense.


කරදරකාරී අනතුරු ඇඟවීම් සමඟ දින කිහිපයක් ගතවී ඇත, දැන් නවතම යාවත්කාලීනය 1.3.3 සමඟ - ඒ සියල්ල හරි .. ස්තූතියි mebmewburn
තාරිකුල් ඉස්ලාම්

1
වෙනම වින්‍යාසයකට ස්තූතියි, දැනට මම නිර්වචනය නොකළ ක්‍රමවේදයන් අක්‍රීය කර ඇති අතර ඉන්ටර්පෙල්ස් මගින් ලැරැවෙල් සහායකයා auth()->user()පංතිය \ ඇප් \ ​​පරිශීලකයා ලෙස හඳුනාගත නොහැක auth()->user(). use Illuminate\Support\Facades\Route;නිර්වචනය නොකළ සංකේත මාර්ග දෝෂය නිවැරදි කිරීම සඳහා මම මගේ මාර්ගවල එක් කළෙමි .
ක්‍රිස්ටෝෆර් නටාලියස්

2
මේ සඳහා ස්තූතියි. මගේ පිහිටුවීම්, හුදෙක් diable සඳහා intelephense.diagnostics.undefinedMethodsසහ intelephense.diagnostics.undefinedTypeක්රියා.
kamudrikah

laravel-ide-helperඅනතුරු ඇඟවීම සවි කර ඇත. ඔබට ස්තුතියි!
giovannipds

_ide_helper.phpලියකියවිලි වල යෝජනා කර ඇති පරිදි උත්පාදනය කිරීමට අවශ්‍යය .
giovannipds

121

1.3.0 අනුවාදයේ දෝෂ සහිත IMO ඇත.
1.2.3 අනුවාදයට පහත හෙලීම මගේ ගැටලුව විසඳයි.

මම ඉන්නේ

  • Laravel 5.1
  • PHP 5.6.40

අනුවාදයට පහත හෙලීම 1.2.3


3
ඔව්, මම හිතන්නේ මෙය හොඳම පිළිතුරයි, ගැටලුව නව අනුවාදයයි
ඒඩ්‍රියන් එඩි ප්‍රතාමා

ඔව්! පැයකට පෙර ආරම්භ වූ ඉන්ටෙලිෆෙන්ස් 1.3.0 දක්වා යාවත්කාලීන වූ විට එය හරියටම 1.2.3 දක්වා පහත හෙලීම නිසා එය හරියටම නිවැරදි විය.
ලියෝ

1
මටත් එසේමයි. මම PHP 5.3.3 හි ව්‍යාපෘතියක වැඩ කරමින් සිටිමි. 1.3 ස්ථාපනය කළ පසු සෑම තැනකම දෝෂ. ඉන්ටෙලිෆෙන්ස් දිගුව සැකසීමේදී ("intelephense.en Environment.phpVersion": "5.3.3") PHP අනුවාදය 5.3.3 ලෙස සැකසීම කිසිවක් කළේ නැත. 1.2.3 වෙත ආපසු හරවා එය සවි කර ඇත.
බෙන්

2
Lex ඇලෙක්ස් වෙනත් ගැටළු තිබේ. විමසුම් විෂය පථයන් සඳහා ඔබ දෝෂ ලබා ගනී. මෙය හුදෙක් මුහුණත පමණක් නොවේ.
මිලොස්ලාව් මිලෝ ජැනූක්

2
ඉන්ටෙල්ෆෙන්ස් 1.3.3 ඔබේ වැඩබිම් හා කේතීකරණ ශෛලියට ගැලපෙන පරිදි තවත් වින්‍යාස විකල්ප එකතු කරයි. නිර්වචනය නොකළ රෝග විනිශ්චය සඳහා සෑම කාණ්ඩයක්ම දැන් සක්‍රිය / අක්‍රීය කළ හැකිය.
bmewburn

19

ඔබට පහත හෙලීමට අවශ්‍ය නැත:

එක්කෝ සැකසුම් තුළ නිර්වචනය නොකළ සංකේත රෝග නිර්ණය අක්‍රීය කරන්න - "intelephense.diagnostics.undefinedSymbols": අසත්ය.

නැතහොත් ලාරවල් මුහුණත සඳහා පඩි එකතු කරන අයිඩියල් සහායකයකු භාවිතා කරන්න. Https://github.com/barryvdh/laravel-ide-helper බලන්න


3
IDE Helper විසින් මාර්ග වැසීම හෝ වෙනත් වසා දැමීම් සමඟ ඇති ගැටලු විසඳනු ඇත, නමුත් දක්ෂ විෂය පථ භාවිතා කරන විට ඔබ වෙනත් දෝෂ මඟහරවා ගනු ඇත
මිලොස්ලාව් මිලෝ ජනූක්

3
එබැවින් ගැටලුවක් විසඳීම සඳහා සත්‍ය රෝග විනිශ්චය ලිහිල් කළ යුතුය. කොහෙත්ම නැහැ ජොසී!
කාලෝස් මෝරා

මම IDE Helper ස්ථාපනය කර උපදෙස් අනුව ගොනුව ජනනය කළෙමි .. මෙය Laravel ව්‍යාපෘතියක ය. එය කිසිවක් වෙනස් නොවන බවක් පෙනෙන්නට තිබූ අතර තවමත් සෑම තැනකම නිර්වචනය නොකළ සංකේත ඇත. ඒ නිසා මම 1.2.3
වෙස්පර්නයිට්

15
use Illuminate\Support\Facades\Route;

අනුරූප නාම අවකාශය ආයාත කිරීමෙන් පසු අවවාදය අතුරුදහන් විය.

අනුවාදය

  • කීටයන් 6+
  • vscode අනුවාදය 1.40.2
  • php intelephense 1.3.1

මෙය ඇත්ත වශයෙන්ම ගැටළුව විසඳයි. Console.php තුළ ඇති විධානයන් සඳහා එය ද ක්‍රියා කරයි: ආලෝකමත් කරන්න \ සහාය \ මුහුණත \ ශිල්පියා;
ඇලෙක්ස්

මෙය laravel නිර්දේශ නොකරයි. laravel-ide-helperවින්‍යාසය වේ.
giovannipds

මෙය එකතු කිරීමෙන් ගැටලුව විසඳුණි Route, නමුත් මට එකම දෝෂයක් ඇති Authබැවින් මමද එකතු කළෙමි use Illuminate\Support\Facades\Auth;. ගැටළුව විසඳා ඇත.
ඩේඩා

13

1.3.1 එය සවි කර ඇත.

ඔබේ දිගුව යාවත්කාලීන කරන්න, ඔබ යාමට හොඳ විය යුතුය


22
මම දැනටමත් v1.3.1 හි සිටිමි, නමුත් දෝෂය දිගටම පෙන්වයි.
අල්ට්රාසාමාඩ්

මටත්, විසඳුමක් තිබේද? නැතහොත් අප පහත හෙලිය යුතුද?
tonix

3
මට නම් එය කිසිවක් විසඳන්නේ නැත. 1.2.3 වෙත ආපසු යාම හොඳයි!
කාලෝස් මෝරා

1
1.3.1 මට තවමත් මෙම ගැටලුව ඇත. 1.2.3 එය සවි කර ඇත
NULL දර්ශකය

2
මම 1.3.2 හි සිටිමි, තවමත් සවි කර නොමැත. 1.2.3 දක්වා නැවත පහත හෙලනු ලැබේ.
ඇලෙක්ස්

12

ඔබේ ගැටළු ෆැසෙඩ් වලට පමණක් සීමා වී ඇති අතර ඔබ ලාරවෙල් 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:generateIDE මුහුණත තේරුම් ගැනීමට උදව් කිරීම සඳහා ගොනුවක් ජනනය කිරීමට ධාවනය කරන්න. ඔබට දෘශ්‍ය ස්ටුඩියෝ කේතය නැවත ආරම්භ කිරීමට අවශ්‍ය වනු ඇත.

යොමුව

https://laracasts.com/series/how-to-be-awesome-in-phpstorm/episodes/16

https://github.com/barryvdh/laravel-ide-helper


1
මේ සමඟ ඇති සම්භාවිතාව නම් ඔබට අනුපිටපත් අර්ථ දැක්වීම් ලැබීමයි
කාලෝස් මෝරා

Ar කාර්ලොස්මෝරා මට නොපෙනේ. ඔබ අදහස් කළ දේ මට ලැබුනේ නැත ...
giovannipds

මම laravel 6.x භාවිතා කරන අතර එය ක්‍රියාත්මක වේ.
හකිකෝ

laravel 7 වැඩ කරයි
alfian5229

Authමම VS කේතය නැවත ආරම්භ කිරීමෙන් පසුව ඉන්ටෙලිෆන්ස් ඉස්මතු කිරීම නැවැත්වීය . මෙම පිළිතුරේ පෙන්වා ඇති පියවර මම හරියටම කළෙමි. VS කේතය නැවත ආරම්භ කිරීමෙන් පසු එයට විනාඩියක් හෝ දෙකක් දෙන්න, එවිට දෝෂ ඉවත් විය යුතුය.
agm1984

6

මෙය සැබවින්ම ඔබේ සංස්කාරකවරයාට ලාරවෙල් තේරුම් ගැනීමට ඇති වින්‍යාස සමූහයකි.

ඔබට ඒ සියල්ල අතින් වින්‍යාස කිරීමට අවශ්‍ය නම්, මෙන්න repo . මෙය VS කේතය සහ PhpStorm යන දෙකම සඳහා වේ.

නැතහොත් ඔබට අවශ්‍ය නම් ඔබට මෙම පැකේජය බාගත කළ හැකිය (මම නිර්මාණය කළෙමි) එය ගෝලීයව ස්ථාපනය කිරීමට නිර්දේශ කර ඇත.

ඊට පස්සෙ දුවන්න andylaravel setupIDE. මෙය ඔබ වෙනුවෙන් සෑම දෙයක්ම වින්‍යාසගත කරනු ඇත.


5

නැත, දෝෂ සිදුවන්නේ ඉන්ටෙල්ෆෙන්ස් දිගුව ස්වයංක්‍රීයව යාවත්කාලීන කිරීමෙන් පසුව පමණි.

ගැටළුව විසඳීම සඳහා, ඉන්ටෙලිෆෙන්ස් දිගුවේ "වෙනත් අනුවාදයක් ස්ථාපනය කරන්න" ක්ලික් කිරීමෙන් ඔබට එය පෙර අනුවාදයට පහත හෙලීමට හැකිය. 1.2.3 අනුවාදයේ දෝෂ නොමැත.


1
1.2.3 දක්වා පහත හෙලීම ගැටළුව විසඳීය.
ජුලිටිලෝ

2

නව විකුණුම් පන්තියක් එකතු කළ වහාම ඔබ මෙය දුටුවහොත්, VScode විධානය ක්‍රියාත්මක කිරීමට වග බලා ගන්න (control-shift-P) Index Workspace


1

මෙන්න මම විසඳුවා:

දිගු සැකසුම් විවෘත කරන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඔබට වෙනස් කිරීමට අවශ්‍ය විචල්‍යය සොයන්න, එය පරීක්ෂා නොකර / පරීක්ෂා කරන්න

රූප විස්තරය මෙහි ඇතුළත් කරන්න

ඔබ සලකා බැලිය යුතු විචල්යයන්:

intelephense.diagnostics.undefinedTypes 
intelephense.diagnostics.undefinedFunctions         
intelephense.diagnostics.undefinedConstants         
intelephense.diagnostics.undefinedClassConstants 
intelephense.diagnostics.undefinedMethods 
intelephense.diagnostics.undefinedProperties 
intelephense.diagnostics.undefinedVariables

1

එය සරල, මෝඩ ලෙස තබා ගැනීමට කැමති අයට; සහායකයකු ස්ථාපනය කිරීම හෝ පහත හෙලීම වෙනුවට ඔබ දැන්වීම් ඉවත් කරන්නේ නම්, settings.jsonමෙය එකතු කිරීමෙන් ඔබගේ දෝෂය අක්‍රීය කරන්න :

"intelephense.diagnostics.undefinedTypes": false


0

මට එකම ප්‍රශ්නය ඇති අතර පහත සඳහන් කරුණු මෙම ගැටළුව විසඳා ඇති බව පෙනේ.

අ) නවතම අනුවාදය 1.3.5 වෙත යාවත්කාලීන කර සියලුම රෝග විනිශ්චය සැකසුම් නැවත සක්‍රීය කර ඇත.

මට තවමත් පණිවිඩ ලැබෙමින් තිබුණි

ආ) යැපෙන පුස්තකාල සහිත විකුණුම්කරුගේ ෆෝල්ඩරය වැඩපොළට එක් කරන ලදි

මෙය ගැටළුව විසඳා ඇති බව පෙනේ.


ඔබට භාවිතා කළ හැකියlaravel-ide-helper
giovannipds

ඔත්තුවට ස්තූතියි. මම Drupal ඇතුලත Symfony භාවිතා කරමි. Laravel-ide-helper උදව් කරයිද?
anoopjohn

0

මෙම ගැටළු වලට මුහුණ දෙන සහ සම්පූර්ණ චෙක්පත් සමූහයක් අක්‍රීය කිරීම ගැන නොසන්සුන් වන ඕනෑම කෙනෙකුට, ඔබේම අභිරුචි අත්සන් ඉන්ටෙලිෆෙන්ස් වෙත යැවීමට ක්‍රමයක් තිබේ (මම VSCode භාවිතා කරමි, නමුත් එය දෘශ්‍ය ස්ටුඩියෝ කේතය සඳහාද ක්‍රියාත්මක විය යුතුය).

Intlephese repo හි අදහස් වලින් පිටපත් කරන ලදි (apKapitanOczywisty විසින්):
https://github.com/bmewburn/vscode-intelephense/issues/892#issuecomment-565852100

තනි වැඩබිමක් සඳහා එය ඉතා සරල ය, ඔබ .phpසියලු අත්සන් සහිත ගොනුවක් සෑදිය යුතු අතර ඉන්ටර්පෙල්ස් ඒවා සුචිගත කරනු ඇත.

ඔබට ගෝලීය වශයෙන් මුරණ්ඩු එකතු කිරීමට අවශ්‍ය නම්, ඔබට තවමත් හැකිය, නමුත් එය අපේක්ෂිත අංගයක් දැයි මට විශ්වාස නැත . පවා නම් 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.