最近、RedBean ORM を使い始めました。
ユーザーの情報を格納する User Bean タイプと、ユーザー機能に関連付けられた FUSE モデルがあります。
ユーザーがログインするか、セッションがすでに設定されている場合、Redbean はアドレスを含むユーザーの情報を取得します。
ユーザーがログインするまで、geoip 位置情報サービスを介して新しいユーザー Bean の州と都市の値を設定します。
この種の手順のベストプラクティスは何なのか疑問に思っています。
私の見方では、いくつかのオプションがあります。
- geoip オブジェクトをインスタンス化し、値を設定するメソッドをユーザー FUSE モデルに作成します。
- FUSE モデルの外部で geoip オブジェクトをインスタンス化し、値を直接設定します。つまり、$user->state = $location->state;
- FUSE モデルの外部で geoip オブジェクトをインスタンス化しますが、そのオブジェクトを処理方法を知っている FUSE モデル セッターに渡します。
クラスの依存関係が作成されるため、オプション1を実際に実行したくないと思います。
何かご意見は?