zendフレームワークと教義(ゲッターとセッター)

doctrine getter-setter zend-framework
zendフレームワークと教義(ゲッターとセッター)

次のような既存のエンティティモデルで教義を使用することは可能ですか?

class user{
protected $_id;
protected $_name;

public function set_id($_id){}
public function get_id(){}
public function set_name($_name){}
public function get_name(){}
}

または、ハードコードされたゲッターとセッターを使用してモデルを生成または使用します。

使いたくない

$user->name
$user['name']
$user->get('name')

これは教義でできますか?

ありがとう

  1  0


ベストアンサー

Doctrine 1.2までのすべてのバージョン:エンティティモデルクラスはDoctrine_Recordクラスを拡張する必要があります。

モデルフィールドの定義も「教義的な方法」で行う必要があります。 参照:http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models

例:

__
パブリック関数setTableDefinition()\ {

   $this->hasColumn('username', 'string', 255);
   $this->hasColumn('password', 'string', 255);

}
__

独自のカスタムハードコードセッター/ゲッターを使用する場合は、マジックゲッター/セッターをオーバーライドできます。 参照:http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-modelsの例:

__
クラスUserはBaseUserを拡張します\ {

public function setPassword($password)
{
    return $this->_set('password', md5($password));
}

}
__

最後の発言/質問:マジックセッター/ゲッターメソッドを使用することは良い練習です。 何らかの方法でデータを操作する必要がある場合にのみ、カスタムメソッドを使用してください。

3


タイトルとURLをコピーしました