2016-10-14 22 views
-1

Person PHPクラスを作成しました。クエリを実行するためにMySQLに接続しました。ベストプラクティスのクラス変数

クラスIでは、$name,$ageなどのプライベートプロパティと、CRUD(INSERT、UPDATE ..)、GETTERとSETTERなどの任意のメソッドを使用します。

私はこれらのメソッドを書くの引数

private function insert($name, $age){ 
    // bindParam uses $name, $age, etc 
} 

またはクラスのプライベート礼儀のような

private function insert(){ 
    // bindParam uses $this->name, $this->age, etc 
    .. 
} 

ようにそれを渡すために良いですか?

最初の方法では、各設定メソッドで各変数に値を割り当てることを覚えておく必要があります。実際には2番目の方法で直接値を渡します。

+0

なぜあなたのオブジェクトは* state *(格納された名前、年齢など)を持っていますか?*と*は 'insert'関数のパラメータと同じ値を受け入れますか? – deceze

答えて

1

主に意見に基づく質問ですが、次のようにアプリケーションを設計することができます。

まず最初に、モデルはオブジェクト/エンティティのデータを格納するだけで、ゲッターとセッターのメソッドしか持たないようにしてください。あなたの場合は、それぞれのプロパティとゲッターセッターメソッドを保持するエンティティクラスです。

人物エンティティのDB操作を実行する別のクラスを作成します。このクラスには、CRUD操作が含まれます。 (挿入、選択、更新、削除)このクラスをDAO(データアクセスオブジェクト)と呼びます。 Learn more about DAO

クラス DAO では、少なくとも挿入および更新方法は、のオブジェクトを受け入れると、あなたはそれがperticularメソッドの値にアクセスするためのゲッターメソッドです使用します。同じ方法だけのオブジェクトまたはオブジェクトのコレクションは、SELECT操作で返します。

この方法でコードを整備すると、新しいレベルに簡単に拡張できます。

関連する問題