4

私はdoctrine ormを使用してサイレックスの認証システムに取り組んでいます。このドキュメントでは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 からそこに何を置くべきですか? そのための専用のサービスまたはオブジェクトはありますか?

4

1 に答える 1

1

Symfony2 コンテキストでは、Doctrine と Symfony Doctrine Bridge のソース コードに従って、 、 、、をdoctrine引数として受け取るサービスを注入する必要があります。このサービスは で定義されています。connectionentity managerdefault connectiondefault entity managervendor\{...}\Doctrine\Bundle\DoctrineBundle\Resources\config\dbal.xml

(このサービスは、タイプ ヒント クラスであるインターフェイスを最終的に実装するDoctrine\Bundle\DoctrineBundle\Registryを拡張する抽象クラスSymfony\Bridge\Doctrine\ManagerRegistryを拡張するインスタンスです。)Doctrine\Common\Persistence\AbstractManagerRegistryDoctrine\Common\Persistence\ManagerRegistry

Doctrine による Silex プロバイダーのドキュメントの最初の数行に記載されているように、ORM サービスは提供されていません。カスタム プロバイダーを使用して ORM を使用しているため、このdoctrineサービスに相当するものを注入する必要があります。

于 2013-09-24T06:15:33.810 に答える