1

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

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')

これは教義で行うことができますか?

ありがとう

4

1 に答える 1

3

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));
} 

}

最後のコメント/質問:マジックセッター/ゲッターメソッドを使用することは良い習慣です。何らかの方法でデータを操作する必要がある場合は、カスタムメソッドのみを使用する必要があります。

于 2009-12-17T14:32:58.243 に答える