laravel - 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
解决方案
不幸的是,旧版本的 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
)。
推荐阅读
- codenameone - 将包含 ListProperty 的 PropertyBusinessObject 存储到 JSON
- regex - 正则表达式:如果元音按顺序(aeiou)出现在单词中,则匹配,如果存在字符以外的字符则不匹配
- python - 如何在不使用 python 或 R 打开浏览器的情况下截取 youtube 页面?
- flutter - 如何打开用户在颤动中终止应用程序的最后一页?
- rust - 从闭包返回闭包作为函数的返回值
- docker - 为什么客户端无法连接到 localhost:8080?
- javascript - 在画布上显示 node.js 输出变量
- python - 使用 OpenCV 保存视频时出现错误消息
- ios - 它不允许我通过“App Store Connect Operation Error”上传应用程序
- vue.js - 将吸气剂导入路由器的问题 - Vuex