Magento 2.4.3-p2升级至2.4.6-p5执行setup:upgrade遇实例化错误
问题场景
升级操作执行的命令:
composer require magento/product-community-edition 2.4.6-p5 --no-update composer update --ignore-platform-reqs
执行setup:upgrade时触发错误:
vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:50
Cannot instantiate interface Magento\Theme\Model\Theme\StoreThemesResolverInterface
#0 vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\Theme\M...')
#1 vendor/magento/module-theme/Model/Config/Customization.php(75): Magento\Framework\ObjectManager\ObjectManager->get('Magento\Theme\M...')
#2 vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(121): Magento\Theme\Model\Config\Customization->__construct(Object(Magento\Store\Model\StoreManager), Object(Magento\Theme\Model\View\Design\Proxy), Object(Magento\Theme\Model\Theme\ThemeProvider), NULL)
解决步骤
重新安装完整依赖
使用--ignore-platform-reqs可能导致部分核心依赖未正确安装,重新执行composer安装:composer install若环境暂不满足平台要求,保留参数执行:
composer install --ignore-platform-reqs修复主题模块缺失文件
StoreThemesResolverInterface的实现类StoreThemesResolver可能未被正确拉取,重新安装主题模块:composer require magento/module-theme 2.4.6-p5 --no-update composer update magento/module-theme --ignore-platform-reqs检查文件
vendor/magento/module-theme/Model/Theme/StoreThemesResolver.php是否存在,确认类已正确实现接口。清理缓存与生成文件
清理旧缓存和生成代码,避免干扰升级流程:bin/magento cache:flush rm -rf var/generation var/di var/cache var/page_cache bin/magento setup:di:compile排查第三方模块/主题冲突
第三方扩展可能重写了相关接口逻辑,暂时禁用所有非核心模块后重试:bin/magento module:disable --all bin/magento setup:upgrade若问题解决,逐个启用模块定位冲突源。
内容的提问来源于stack exchange,提问作者Bhagyesh Bhalodiya

