我正在使用doctrine orm在silex中使用auth系统,并且在下面的架构http://silex.sensiolabs.org/doc/providers/security.html#defining-a-custom-user-provider中,有类似的信息:
“如果您使用的是Doctrine ORM,则Doctrine的Symfony桥接器提供了一个能够从您的实体加载用户的用户提供程序类。”
我正在使用Dotrine ORM提供程序,所以我决定从Symfony \ Bridge \ Doctrine \ Security \ User使用EntityUserProvider类,问题是这个类的构造函数,因为第一个参数有“ManagerRegistry $ registry”。
我应该从silex那里放什么?是否有专门的服务或对象?
答案 0 :(得分:1)
在Symfony2上下文中,根据Doctrine和Symfony Doctrine Bridge源代码,您需要注入名为doctrine
的服务,该服务需要connection
,entity manager
,{ {1}}和default connection
作为参数。此服务在default entity manager
中定义。
(此服务是vendor\{...}\Doctrine\Bundle\DoctrineBundle\Resources\config\dbal.xml
的一个实例,它扩展了抽象类Doctrine\Bundle\DoctrineBundle\Registry
,扩展了最终实现接口Symfony\Bridge\Doctrine\ManagerRegistry
的{{1}}。暗示课程。)
正如Silex providers documentation according Doctrine的前几行所述,未提供ORM服务。由于您使用自定义提供程序来使用ORM,因此需要为此Doctrine\Common\Persistence\AbstractManagerRegistry
服务注入等效项。