如何让Edujugon/laradoo扩展包兼容Laravel 9支持composer安装
Laravel 9 环境安装Edujugon/laradoo对接Odoo解决方案
原Edujugon/laradoo扩展包已停止活跃维护,其composer配置中对illuminate组件的版本约束仅支持到Laravel 8,因此在Laravel 9项目中直接执行安装命令会触发依赖冲突,可通过以下两种方案解决,安装完成后原有业务对接代码无需修改即可正常使用:
方案一:快速兼容安装(5分钟落地)
直接在项目根目录执行带依赖兼容参数的安装命令,绕过版本校验:
composer require edujugon/laradoo --with-all-dependencies --ignore-platform-req=illuminate/support
安装完成后手动注册服务提供者即可:
- 打开
config/app.php,在providers数组中添加Edujugon\Laradoo\LaradooServiceProvider::class - 在
aliases数组中添加facade别名:'Laradoo' => Edujugon\Laradoo\Facades\Laradoo::class - 最后执行配置发布命令生成配置文件:
php artisan vendor:publish --provider="Edujugon\Laradoo\LaradooServiceProvider"
方案二:本地适配(最稳定,无后续兼容风险)
如果方案一执行仍存在依赖冲突,可直接在本地调整包的版本约束适配Laravel9:
- 在项目根目录创建
packages/edujugon/laradoo目录,将原扩展包的全部源码拷贝至该目录 - 修改目录下的
composer.json文件,调整依赖版本约束:- 将
php版本约束改为^8.0(匹配Laravel9最低PHP版本要求) - 将所有
illuminate/*开头的依赖版本约束改为^9.0
- 将
- 打开项目根目录的
composer.json,添加本地仓库配置:
"repositories": [ { "type": "path", "url": "packages/edujugon/laradoo" } ]
- 执行安装命令从本地路径拉取适配后的包:
composer require edujugon/laradoo
注:原扩展包的业务逻辑未使用Laravel9废弃的API,仅composer版本约束未更新,因此调整依赖约束后即可100%兼容原有功能,无需修改业务源码。
内容的提问来源于stack exchange,提问作者elf
相关产品推荐
相关产品推荐

