具有Doctrine ORM的Silex auth系统

时间:2013-03-08 00:51:43

标签: symfony doctrine silex

我正在使用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那里放什么?是否有专门的服务或对象?

1 个答案:

答案 0 :(得分:1)

在Symfony2上下文中,根据Doctrine和Symfony Doctrine Bridge源代码,您需要注入名为doctrine的服务,该服务需要connectionentity 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服务注入等效项。