0

モデルをSQLコードと接続を知らないようにしようとしているので、いわゆる「データアクセスオブジェクト」/「dao」を実装しようとしています。

私のモデルはデータベース内のテーブルを表し、そのプロパティは次のように db フィールドに表示されます。たとえば、loginModel

class LoginModel {

   private $user;
   private $pass;
   private $salt;
   private $ip;
   private $agent;

   // getters and setters e.g.
   public function getUser() {
       return $this->user;
   }
   public function setUser($user) {
       $this->user = $user;
   }
   // or for example magic methods -> just for example

   public function __get($key) {
       return $this->$key;
   }

   public function __set($key, $value) {
       $this->$key = $value;
   }

}

私の開発では、間違ったことをしていると思いますが、ビューまたはコントローラーで、これを行っています。

$loginModel = new LoginModel();
$loginModel->setUser('$_POST["user"]');
$loginDAO = new LoginDAO($loginModel);
echo $loginDAO->getResults();

これを行う適切な方法はありますか?POSTまたは、最初に DAO で変数のプロセスを読み取ってから、モデルのプロパティを設定する必要がありますか?

4

1 に答える 1

0

複数のタイプのストレージを含むさまざまなシナリオにそれをさらに抽象化する場合は、Factory Patternを確認してください。

編集:あなたの質問をもう一度見て、その答えの半分は必要ないことに気づきましたが、私が削除したものは次のとおりです:


モデルを設計する方法によって、物事が少し混乱する可能性があります。モデルをプロセスではなくオブジェクトとして設計してみてください。

ログインのプロセスはコントローラーによって処理されますが、モデルはデータベースから何かを取得する責任があります。これは、タスクを完了する方法としてコントローラー内でモデルを使用することを意味します。

于 2013-07-26T02:45:16.007 に答える