首页 > 解决方案 > laravel 旧版本不支持 php 8.0.8

问题描述

我已经在本地计算机上安装了 php 8.0.8。Laravel 新项目完美运行。但是当我尝试运行旧项目时,它会显示错误。当我尝试运行命令时

composer install

它给了我以下错误:

      Problem 1
    - jeremy-dunn/php-fedex-api-wrapper is locked to version 5.0.1 and an update of this package was not requested.
    - jeremy-dunn/php-fedex-api-wrapper 5.0.1 requires ext-soap * -> it is missing from your system. Install or enable PHP's soap extension.

To enable extensions, verify that they are enabled in your .ini files:
    - C:\xampp\php\php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

当我运行时:

composer dump-autoload

它显示了这个错误:

    Generating optimized autoload files Class App\Http\Controllers\Vendor\OrderController 
 located in C:/Users/Muhammad Adnan/Downloads/test-upwork-master/spree-retail/app\Http\Controllers\temp\OrderController.php does not comply with psr-4 autoloading standard. Skipping.
Class App\Http\Resources\profile\AddressesResponse located in C:/Users/Muhammad Adnan/Downloads/test-upwork-master/spree-retail/app\Http\Resources\Profile\AddressesResponse.php does not comply with psr-4 autoloading standard. Skipping.
Class Illuminate\Foundation\ComposerScripts is not autoloadable, can not call post-autoload-dump script
> @php artisan package:discover --ansi

Fatal error: Uncaught Error: Class "Illuminate\Foundation\Application" not found in C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\bootstrap\app.php:14
Stack trace:
#0 C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\artisan(20): require_once()
#1 {main}
  thrown in C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\bootstrap\app.php on line 14
PHP Fatal error:  Uncaught Error: Class "Illuminate\Foundation\Application" not found in C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\bootstrap\app.php:14
Stack trace:
#0 C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\artisan(20): require_once()
#1 {main}
  thrown in C:\Users\Muhammad Adnan\Downloads\test-upwork-master\spree-retail\bootstrap\app.php on line 14
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255

标签: laravelversion

解决方案


不幸的是,旧版本的 Laravel 不支持新版本的 PHP。Laravel 6 是支持 PHP 8.0 的最低版本(从 Web 开发的角​​度来看,它已经相当老了)。

当然,这是全新安装,您的项目中的代码可能也不兼容 PHP 8.0。

关于这个错误:

  Problem 1
- jeremy-dunn/php-fedex-api-wrapper is locked to version 5.0.1 and an update of this package was not requested.
- jeremy-dunn/php-fedex-api-wrapper 5.0.1 requires ext-soap * -> it is missing from your system. Install or enable PHP's soap extension.

这个问题很容易解决,只需安装soap扩展。您似乎在 Windows 上,因此它应该已经安装但已禁用。

您将不得不;extension=soap.dll在您的php.ini文件中取消注释(或者可能在ext您的 php 目录中的目录中,这取决于)。

可能需要其他扩展但已禁用,以获取完整列表 execute composer check

这就是阻止作曲家安装您的依赖项的原因(这会导致Uncaught Error: Class "Illuminate\Foundation\Application" not found in您在调用时composer dump-autoload)。


推荐阅读