0

私は数週間 Symfony2 を使っていて、とても気に入っています。

しかし、私は側面と少し混乱しています。2 つのバンドルがあり、それぞれに「ユーザー」エンティティがあり、そのユーザーに関する情報が格納されているとします。

ただし、サイト管理者が選択した認証で実際の認証を実行できるようにしたいと考えています (バンドルのユーザー エンティティの 1 つでなくても)。

実際の認証に柔軟に対応しながら、これらのエンティティを整理してすべてリンクするためのベスト プラクティスは何ですか。

ありがとう。


更新: ここに説明があります。

フォーラムとウィキの 2 つのバンドルがあるとします。

さて、ユーザーにとっては、これら 2 つのシステムに保存したいさまざまなデータがたくさんあります。したがって、それぞれにそれらを格納する場所があります (2 つの異なるテーブルのように)。ただし、どちらも認証情報は保存せず、その他の情報のみを保存します。

どちらの認証方法が使用されても、そのトークンを取得して、独自のバンドルで使用する必要があるユーザー データを決定できるという考えです。そうすれば、バンドルは互いに独立して機能するだけでなく、認証方法とは独立して機能することができます。

4

1 に答える 1

0

複数の User エンティティを持つことは避けたいと思います。いくつかのベスト プラクティスをアプリケーションにすばやく統合するには、FOSUserBundleをご覧ください。これにより、ユーザーの登録やログインなどを許可するために必要な機能の約 80% が提供されます。アプリケーション内で FOSUserBundle を拡張する独自の UserBundle を作成します。たとえば、ユーザー エンティティはおそらく次のようになります。

use FOS\UserBundle\Entity\User as BaseUser;

/**
 * Extend the FOSUserBundle base User class.
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser {
    ...
}

この拡張された User エンティティ ( YourApp\UserBundle\Entity\User) を、プロジェクト内の他のすべてのバンドル全体で正規の User エンティティとして参照します。

于 2012-06-13T13:49:07.303 に答える