首页 文章

Symfony 4 - 服务被删除或内联,虽然它是公开的

提问于
浏览
5

我正在尝试使用新的目录结构和所有内容将SF 3.3应用程序迁移到SF 4 .

我在这个例外上苦苦挣扎:

编译容器时,“simplethings_entityaudit.reader”服务或别名已被删除或内联 . 您应该将其公开,或者直接停止使用容器并改为使用依赖注入 .

(此服务来自/ vendor中的外部包) .

然而,当我 bin/console debug:container simplethings_entityaudit.reader 你会看到服务存在并且是公开的:

Information for Service "simplethings_entityaudit.reader"
=========================================================

 ----------------- -------------------------------------- 
  Option            Value                                 
 ----------------- -------------------------------------- 
  Service ID        simplethings_entityaudit.reader       
  Class             SimpleThings\EntityAudit\AuditReader  
  Tags              -                                     
  Public            yes                                   
  Synthetic         no                                    
  Lazy              no                                    
  Shared            yes                                   
  Abstract          no                                    
  Autowired         no                                    
  Autoconfigured    no                                    
  Factory Service   simplethings_entityaudit.manager      
  Factory Method    createAuditReader                     
 ----------------- --------------------------------------

此服务目前使用 $this->container->get('simplethings_entityaudit.reader') 在我自己的服务中调用 .

我也尝试将 SimpleThings\EntityAudit\AuditReader 注入我的服务构造函数中,但这是我得到的:

方法“__construct()”的参数“$ auditReader”引用类“SimpleThings \ EntityAudit \ AuditReader”,但不存在此类服务 . 它无法自动注册,因为它来自不同的根命名空间 .

当我将它添加到我的 services.yaml 时,它可以工作,但我不应该这样做:

SimpleThings\EntityAudit\AuditReader:
    alias: simplethings_entityaudit.reader

有任何想法吗?

1 回答

相关问题