我正在查看http://symfony.com/doc/2.0/cookbook/service_container/parentservices.html,这是关于it技术的内容。
newsletter_manager:
class: %newsletter_manager.class%
parent: mail_manager
calls:
- [ setFilter, [ @another_filter ] ]
我应该可以将服务注入到函数调用中(如果我没有理解错的话)。但是当我在自己的项目中尝试时,
myapp.userBridge:
class: ...\NotesBundle\Bridge\UserBridge
arguments:
- '@doctrine.orm.entity_manager'
myapp.user:
class: ...\UserBundle\Entity\User
calls:
- [ initUserNotesBundle, [ @myapp.userBridge ] ]
- [ cleanupUserNotesBundle, [ @myapp.userBridge ] ]
但当函数被调用时(Doctrine 2 生命周期回调:PrePersist)
public function initUserNotesBundle(UserBridge $userBridge) {
$userBridge->prePersistUser($this);
}
它提供了
Catchable Fatal Error: Argument 1 passed to ...\UserBundle\Entity\User::initUserNotesBundle()
must be an instance of ...\NotesBundle\Bridge\UserBridge, none given,
called in ...\Doctrine\ORM\Mapping\ClassMetadataInfo.php on line 1540
and defined in ...\UserBundle\Entity\User.php line 319