Asked  7 Months ago    Answers:  5   Viewed   50 times

After the latest update of PHP Intelephense that I get today, the intelephense keep showing an error for an undefined symbol for my route (and other class too), there is no error like this before and it's bothering me.

Here is the error screenshot :

enter image description here

And this is my code :

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

Actually there's no error in this code but the intelephense keeps showing an error so is there a way to fix this?

 Answers

54

Intelephense 1.3 added undefined type, function, constant, class constant, method, and property diagnostics, where previously in 1.2 there was only undefined variable diagnostics.

Some frameworks are written in a way that provide convenient shortcuts for the user but make it difficult for static analysis engines to discover symbols that are available at runtime.

Stub generators like https://github.com/barryvdh/laravel-ide-helper help fill the gap here and using this with Laravel will take care of many of the false diagnostics by providing concrete definitions of symbols that can be easily discovered.

Still, PHP is a very flexible language and there may be other instances of false undefined symbols depending on how code is written. For this reason, since 1.3.3, intelephense has config options to enable/disable each category of undefined symbol to suit the workspace and coding style.

These options are: intelephense.diagnostics.undefinedTypes intelephense.diagnostics.undefinedFunctions intelephense.diagnostics.undefinedConstants intelephense.diagnostics.undefinedClassConstants intelephense.diagnostics.undefinedMethods intelephense.diagnostics.undefinedProperties intelephense.diagnostics.undefinedVariables

Setting all of these to false except intelephense.diagnostics.undefinedVariables will give version 1.2 behaviour. See the VSCode settings UI and search for intelephense.

Wednesday, March 31, 2021
 
dmp
answered 7 Months ago
dmp
95

The error states that the variable $previous, which you expect to be an array, is actually null. You can't use an array offset on a null. Given that you said it was developed 2 years ago, probably some library changed and has different return types. Check where you instantiate $previous or how it is assigned a value.

Saturday, May 29, 2021
 
Vlad
answered 5 Months ago
86

You need to use the "Run" or "Debug" commands from the context (right click) menu, or from the Test Explorer window or from the Test menu. The green Start button and the commands on the Debug menu do not start Coded UI tests. (They did start Coded UI In Visual Studio 2010.)

Saturday, July 31, 2021
 
wavyGravy
answered 3 Months ago
91

You can compare files from the explorer either from the working files section or the folder section. You can also trigger the global compare action from the command palette.

  1. Open a folder with the files you need to compare,
  2. Select two using SHIFT
  3. Right click "Compare Selected" enter image description here
Friday, September 3, 2021
 
noir
answered 2 Months ago
71

Solved by uninstalling and reinstalling Visual Studio Code extensions.

Thursday, September 30, 2021
 
fret
answered 3 Weeks ago
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :