You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Magento中「Import failed: Circular dependency」报错?

解决Magento循环依赖导入失败报错

Import failed: Circular dependency: Magento\Logging\Model\Handler\Controllers depends on Magento\Framework\View\Element\UiComponentFactory and vice versa.

以下是几种可行的解决方法:

  • 使用代理类延迟实例化
    修改Magento\Logging\Model\Handler\Controllers的构造函数,将Magento\Framework\View\Element\UiComponentFactory替换为其代理类Magento\Framework\View\Element\UiComponentFactory\Proxy,通过延迟加载打破循环依赖。示例代码:

    public function __construct(
        // 保留其他原有依赖
        \Magento\Framework\View\Element\UiComponentFactory\Proxy $uiComponentFactory
    ) {
        $this->uiComponentFactory = $uiComponentFactory;
        // 其他初始化逻辑
    }
    
  • 重构代码解耦依赖
    若代理类方式无法解决,需要梳理两个类的依赖关系:

    1. 定位Controllers类中使用UiComponentFactory的具体功能模块,将这部分逻辑抽离为独立的服务类。
    2. 让Controllers和UiComponentFactory都依赖这个新服务类,替代原来的直接互相依赖。
  • 清理缓存并重新编译
    缓存或编译文件异常也可能触发该错误,执行以下命令修复:

    bin/magento cache:clean
    bin/magento cache:flush
    bin/magento setup:di:compile
    

内容的提问来源于stack exchange,提问作者Mueez Ali Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:12:09