atom / ide-php

PHP language support for Atom-IDE
MIT License
264 stars 41 forks source link

php-ide crash #160

Open Kaczuc opened 3 years ago

Kaczuc commented 3 years ago

When he wants to edit a file with the extension php he gets this message

image

settings: image

Kaczuc commented 3 years ago

New error image

donaldinou commented 3 years ago

Related to the package netresearch/jsonmapper as a dependency from felixfbecker/language-server. It is required as follow: "netresearch/jsonmapper": "^1.0" . Regarding to the composer.lock it has been released with the v1.4.0 but many fixes on 1.x branch exists now (last release is 1.6.0)

So the solution is to do a composer update or force >=1.6.0 on the root package and then composer install. Finally, republish the plugin.

Related to the pull request:

158

ErvinSabic commented 3 years ago

Can confirm this bug. Happened right after I updated to PHP 8. image

Ritotsume commented 3 years ago

Can confirm this bug. Happened right after I updated to PHP 8. image

I fixed this in this way:

Open JsonMapper.php (I use Archlinux): $HOME/.atom/packages/ide-php/vendor/netresearch/jsonmapper/src/JsonMapper.php

And change this on line 300:

// Turn this...
if ($type !== '' && $type{0} != '\\') {

// Into this...
if ($type !== '' && $type[0] != '\\') {

Restart Atom and the error is gone. For me worked. I hope this help you.

Edit: Only remember of change things properly later, like @donaldinou say above (via composer update).

donaldinou commented 3 years ago

Can confirm this bug. Happened right after I updated to PHP 8.

You can fix this way but you’re changing an old vendor library. There are other fixes of you just use composer to update the plugin on the « riche way » (composer update)

Ritotsume commented 3 years ago

Can confirm this bug. Happened right after I updated to PHP 8.

You can fix this way but you’re changing an old vendor library. There are other fixes of you just use composer to update the plugin on the « riche way » (composer update)

Yes, you're right. That was only a workaround, becouse I got a lot of other errors related to PHP version.

Again, you're right. For the questions of time, I used that workaround. Later, I will use the right way.

LoganTann commented 2 years ago

I still have the same error. I'm pasting it for SEO :

DEBUG The xdebug extension is not loaded
DEBUG Listening on STDIN
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/logan/.atom/packages/ide-php/vendor/netresearch/jsonmapper/src/JsonMapper.php on line 300
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /home/logan/.atom/packages/ide-php/vendor/netresearch/jsonmapper/src/JsonMapper.php on line 300
cricketmon commented 2 years ago

My solution was this after upgrading to php@8:

-Visit https://github.com/cweiske/jsonmapper -Go to src/JsonMapper.php ( there u will see a 'Add support for PHP 8.0' banner =) ) -Copy the entire getFullNamespace (line 329 to 341)

Till the pull request its done officially this will do the job perfectly #158