2013-03-08 4 views
4

Я работаю в системе авторизации в Silex с помощью Doctrine ORM, и в этом доке http://silex.sensiolabs.org/doc/providers/security.html#defining-a-custom-user-provider ниже схемы есть информация звучит так:Silex система аутентификации с Doctrine ORM

«Если вы используете Doctrine ORM, то Мост Symfony для Doctrine предоставляет класс провайдера пользователей, который может загружать пользователей из ваших объектов ».

Я использую поставщик Dotrine ORM, поэтому я решил использовать класс EntityUserProvider для Symfony \ Bridge \ Doctrine \ Security \ User, и проблема заключается в конструкторе этого класса, поскольку первый аргумент имеет «реестр менеджера реестра».

Что я должен положить туда из силекса? Есть ли для этого выделенный сервис или объект?

ответ

1

В контексте Symfony2 и в соответствии с доктриной и Symfony доктрина исходного кода Bridge, вам нужно будет вводить услугу под названием doctrine который принимает connection, в entity manager, в default connectiondefault entity manager и в качестве аргументов. Эта услуга определена в vendor\{...}\Doctrine\Bundle\DoctrineBundle\Resources\config\dbal.xml.

(Эта услуга является экземпляром Doctrine\Bundle\DoctrineBundle\Registry который расширяет абстрактный класс Symfony\Bridge\Doctrine\ManagerRegistry, который расширяет Doctrine\Common\Persistence\AbstractManagerRegistry, что, наконец, реализует интерфейс Doctrine\Common\Persistence\ManagerRegistry, который является типом намекал класса.)

Как уже упоминалось в первые несколько строк Silex providers documentation according Doctrine, служба ORM не предоставляется. Поскольку вы используете пользовательский поставщик для использования ORM, вам нужно ввести эквивалент этому сервису doctrine.

Смежные вопросы