1

最近、RedBean ORM を使い始めました。

ユーザーの情報を格納する User Bean タイプと、ユーザー機能に関連付けられた FUSE モデルがあります。

ユーザーがログインするか、セッションがすでに設定されている場合、Redbean はアドレスを含むユーザーの情報を取得します。

ユーザーがログインするまで、geoip 位置情報サービスを介して新しいユーザー Bean の州と都市の値を設定します。

この種の手順のベストプラクティスは何なのか疑問に思っています。

私の見方では、いくつかのオプションがあります。

  1. geoip オブジェクトをインスタンス化し、値を設定するメソッドをユーザー FUSE モデルに作成します。
  2. FUSE モデルの外部で geoip オブジェクトをインスタンス化し、値を直接設定します。つまり、$user->state = $location->state;
  3. FUSE モデルの外部で geoip オブジェクトをインスタンス化しますが、そのオブジェクトを処理方法を知っている FUSE モデル セッターに渡します。

クラスの依存関係が作成されるため、オプション1を実際に実行したくないと思います。

何かご意見は?

4

1 に答える 1

0

ユーザーがログインするたびにgeoipを処理する必要がある場合-メソッドを作成し、ユーザーログイン時に初期化します(1)。他のオプションでは、オプション 3 ( Instantiate the geoip object outside of the FUSE model, but pass the object to a FUSE model setter which knows how to handle it.) を使用します。オブジェクトのプロパティを直接操作せず、これらのプロパティを処理するメソッドをいくつか設定することをお勧めします。

$user->setProperty('one'); // Actually can just execute `$user->property = $var;`

だがしかし

$user->property = 'one';
于 2012-05-05T16:49:37.647 に答える