6

After in my Laravel 9 project I run composer update I faced this error message:

Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 1 update, 1 removal
  - Downloading fruitcake/laravel-cors (v3.0.0)
  - Removing asm89/stack-cors (v2.1.1)
  - Upgrading fruitcake/laravel-cors (v2.2.0 => v3.0.0): Extracting archive
77 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

In Finder.php line 588:

  syntax error, unexpected token ")"


Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

It seems update was finished, but something went wrong and now in the console I get syntax error, unexpected token ")" error on Finder.php:588.

I checked this file and it's looks correct.

When I open my project in browser I get this error:

Fatal error: Uncaught RuntimeException: A facade root has not been set. in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:334
Stack trace:
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/RegisterErrorViewPaths.php(18): Illuminate\Support\Facades\Facade::__callStatic('replaceNamespac...', Array)
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(626): Illuminate\Foundation\Exceptions\RegisterErrorViewPaths->__invoke()
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(607): Illuminate\Foundation\Exceptions\Handler->registerErrorViewPaths()
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(538): Illuminate\Foundation\Exceptions\Handler->renderHttpException(Object(Symfony\Component\HttpKernel\Exception\HttpException))
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(444): Illuminate\Foundation\Exceptions\Handler->prepareResponse(Object(Illuminate\Http\Request), Object(Symfony\Component\HttpKernel\Exception\HttpException))
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(364): Illuminate\Foundation\Exceptions\Handler->renderExceptionResponse(Object(Illuminate\Http\Request), Object(ParseError))
#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(427): Illuminate\Foundation\Exceptions\Handler->render(Object(Illuminate\Http\Request), Object(ParseError))
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(115): Illuminate\Foundation\Http\Kernel->renderException(Object(Illuminate\Http\Request), Object(ParseError))
#8 /var/www/html/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#9 {main}
  thrown in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 334

I cleared all the caches in bootstrap/cahce/ and in storage/framework/cache/data/, storage/framework/sessions/, storage/framework/views/ folders too.

I use PHP version 8.0.16.

Composer version 2.0.12 2021-04-01 10:14:59.

Any idea how can I fix this?

netdjw
  • 5,419
  • 21
  • 88
  • 162
  • Try to delete vendor folder and reinstall everything, perhaps it will fix the issue, if some files are corrupted somehow – Lk77 May 30 '22 at 15:39
  • I tried delete vendor folder and composer.lock file too. Not helped. – netdjw May 30 '22 at 15:41
  • They seems to have bumped minimal php version to 8.1, check symfony/finder version, it should be lower than 6.1. I have 6.0.8 and it works fine with php 8.0 – Lk77 May 30 '22 at 15:44
  • 1
    Laravel requires finder version ^6.0 which is also satisfiable by version 6.1 which (if you ask me) is just an invitation for this issue to happen – apokryfos May 30 '22 at 16:00

4 Answers4

14

To continue using php 8.0 add these entries to your composer.json

    "require": {
        ...
        "symfony/console": "6.0.*",
        "symfony/error-handler": "6.0.*",
        "symfony/finder": "6.0.*",
        "symfony/http-foundation": "6.0.*",
        "symfony/http-kernel": "6.0.*",
        "symfony/mailer": "6.0.*",
        "symfony/mime": "6.0.*",
        "symfony/process": "6.0.*",
        "symfony/routing": "6.0.*",
        "symfony/var-dumper": "6.0.*",
        "symfony/event-dispatcher": "6.0.*",
        "symfony/string": "6.0.*",
        "symfony/translation": "6.0.*",
        "symfony/translation-contracts": "3.0.*",
        "symfony/service-contracts": "3.0.*",
        "symfony/event-dispatcher-contracts": "3.0.*",
        "symfony/deprecation-contracts": "3.0.*",
        ...
    }

Worked for me with php 8.0 and Laravel 9.

Philvv
  • 141
  • 3
  • this worked for me, thanks the other option is to remove `--ignore-platform-reqs`, because it allows your composer to install packages that are not compatible with your php version. But this is not always possible to remove – misterone Jul 22 '22 at 15:22
3

I did :

composer require --ignore-platform-reqs symfony/finder 6.1

and i have a similar issue now :

[2022-05-30 17:52:03] laravel.ERROR: syntax error, unexpected token ")" {"exception":"[object] (ParseError(code: 0): syntax error, unexpected token \")\" at /vendor/symfony/finder/Finder.php:588)
[stacktrace]
#0 /vendor/composer/ClassLoader.php(346): Composer\\Autoload\\includeFile()
#1 /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(88): Composer\\Autoload\\ClassLoader->loadClass()
#2 /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(65): Illuminate\\Foundation\\Bootstrap\\LoadConfiguration->getConfigurationFiles()
#3 /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(39): Illuminate\\Foundation\\Bootstrap\\LoadConfiguration->loadConfigurationFiles()
#4 /vendor/laravel/framework/src/Illuminate/Foundation/Application.php(239): Illuminate\\Foundation\\Bootstrap\\LoadConfiguration->bootstrap()
#5 /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(310): Illuminate\\Foundation\\Application->bootstrapWith()
#6 /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(127): Illuminate\\Foundation\\Console\\Kernel->bootstrap()
#7 /artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle()
#8 {main}
"}

So i think it's the version of symfony/finder that is not compatible with php 8.0, try to downgrade any symfony related package to 6.0.x, because i don't think you require symfony/finder directly, but some other package like symfony/http-client

I think you perhaps installed dependencies using php 8.1 at some point and you got wrong packages versions, or perhaps you have laravel 10 installed and not laravel 9 ?

Lk77
  • 2,203
  • 1
  • 10
  • 15
3

I found a soution:

  1. upgrade to PHP 8.1
  2. run docker pull composer to upgrade latest version of composer (from 2.0 to 2.2)
  3. run composer update in Docker container
netdjw
  • 5,419
  • 21
  • 88
  • 162
  • Upgrading PHP to 8.1 didn't work for me (Docker with PHP 8.0 & Composer 2.2.13). What worked was clearing my vendor folder and adding the older symfony packages to `composer.json`: https://stackoverflow.com/a/72475803/482115 – degenerate Jun 22 '22 at 20:08
1

Upgrading your PHP version to PHP 8.1 should solve the problem. And just make sure to run composer install or composer update again

Jesus Erwin Suarez
  • 1,571
  • 16
  • 17