升级Laravel 10与PHP 8.2后dacastro4/laravel-gmail兼容性问题求助
Laravel 10 + PHP 8.2升级后dacastro4/laravel-gmail兼容性问题
问题详情
将Laravel应用从5版本升级至10版本,同时PHP从7版本升级到8.2版本后,dacastro4/laravel-gmail包出现兼容性冲突,报错信息如下:
Problem 1 - dacastro4/laravel-gmail[v0.1, ..., v0.6.2, v1.0.0, ..., v1.2, v2.0, ..., v2.0.4, v3.0.0] require illuminate/auth ~5.0|~5.1|~5.2|~5.3 -> found illuminate/auth[v5.0.0, ..., v5.8.36] but these were not loaded, likely because it conflicts with another require. - dacastro4/laravel-gmail[v3.1.0, ..., v3.2.6, v4.0, ..., v4.0.41, v5.0.0, ..., v5.1] require php ^7.2 -> your php version (8.3.8) does not satisfy that requirement. - dacastro4/laravel-gmail[v5.1.1, ..., v5.1.21] require illuminate/auth ~5.8|^6.0|^7.0|^8.0 -> found illuminate/auth[v5.8.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require. - dacastro4/laravel-gmail[v6.0, ..., v6.1] require illuminate/auth ~5.8|^6.0|^7.0|^8.0|^9.0 -> found illuminate/auth[v5.8.0, ..., v5.8.36, v6.0.0, ..., v6.20.44, v7.0.0, ..., v7.30.6, v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.16] but these were not loaded, likely because it conflicts with another require. - Root composer.json requires dacastro4/laravel-gmail * -> satisfiable by dacastro4/laravel-gmail[v0.1, ..., v0.6.2, v1.0.0, ..., v1.2, v2.0, ..., v2.0.4, v3.0.0, ..., v3.2.6, v4.0, ..., v4.0.41, v5.0.0, ..., v5.1.21, v6.0, v6.1]. You can also try re-running composer require with an explicit version constraint, e.g. "composer require dacastro4/laravel-gmail:*" to figure out if any version is installable, or "composer require dacastro4/laravel-gmail:^2.1" if you know which you need.
当前项目的composer.json相关依赖配置:
{ "license": "MIT", "type": "project", "require": { "php": "^8.2", "aws/aws-sdk-php": "^3.313", "doctrine/dbal": "^3.8", "google/apiclient": "^2.16", "guzzlehttp/guzzle": "^7.2", "intervention/image": "2.7.2", "jenssegers/agent": "*", "laracasts/flash": "*", "laravel/framework": "^10.0", "laravel/horizon": "*", "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "laravelcollective/html": "^6.4", "league/flysystem-aws-s3-v3": "^3.28", "maatwebsite/excel": "*", "mailerlite/mailerlite-api-v2-php-sdk": "^0.3.2", "morrislaptop/laravel-queue-clear": "^1.2", "nayjest/grids": "^2.0", "niklasravnsborg/laravel-pdf": "*", "owen-it/laravel-auditing": "*", "phpoffice/phpspreadsheet": "*", "phpoffice/phpword": "^1.2", "predis/predis": "*", "rap2hpoutre/laravel-log-viewer": "*", "spatie/laravel-backup": "*" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.13", "fakerphp/faker": "^1.9.1", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.0", "spatie/laravel-ignition": "^2.0", "symfony/css-selector": "^7.1", "symfony/dom-crawler": "^7.1" } }
解决方法
1. 尝试适配原包
dacastro4/laravel-gmail官方版本仅支持到Laravel 9,无Laravel 10兼容版本,可尝试两种方式:
- 检查包的代码仓库是否有社区贡献的Laravel 10兼容分支,若存在,通过composer指定分支安装:
composer require dacastro4/laravel-gmail:dev-[分支名] - 使用
composer patch工具修改包的composer.json,将illuminate/auth的版本约束改为^10.0,但此方式需自行维护补丁,后续升级需注意冲突。
2. 替代方案
推荐以下支持Laravel 10和PHP 8.2的Gmail集成方案:
- Laravel原生SMTP驱动:直接通过Laravel自带的邮件驱动配置Gmail,无需额外包。在
.env中配置:MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=你的Gmail邮箱地址 MAIL_PASSWORD=你的Gmail应用密码(启用2FA时需使用) MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=你的Gmail邮箱地址 MAIL_FROM_NAME="${APP_NAME}" - 直接使用google/apiclient:项目已依赖
google/apiclient,可直接基于官方SDK实现Gmail的授权、发送邮件、管理邮件等功能,无需依赖第三方封装包。 - Laravel Google服务集成包:若需更完整的Google生态集成,可使用适配Laravel 10的Google服务相关包,配合
google/apiclient实现Gmail操作。
内容的提问来源于stack exchange,提问作者Arpine Harutyunyan
相关产品推荐
相关产品推荐

