zend Rahmens und Lehre (Getter und Setter)
-
20-09-2019 - |
Frage
Ist es möglich, Lehre auf bestehende Einheit Modell zu verwenden wie:
class user{
protected $_id;
protected $_name;
public function set_id($_id){}
public function get_id(){}
public function set_name($_name){}
public function get_name(){}
}
oder zu erzeugen oder zu verwenden Modelle mit hartcodierte Getter und Setter.
ich nicht verwenden möchten
$user->name
$user['name']
$user->get('name')
kann dies mit Lehre getan werden?
Thanx
Lösung
Für alle Versionen bis Lehre 1.2: Ihre Einheit Modell Klasse Bedürfnisse der Doctrine_Record Klasse erweitern.
Die Definition der Modellfelder muss die „Lehre Art und Weise“ zu erfolgen. Siehe: http://www.doctrine-project.org/ Dokumentation / manual / 1_2 / en / definieren-Modelle
Beispiel:
public function setTableDefinition () {
$this->hasColumn('username', 'string', 255); $this->hasColumn('password', 'string', 255);
}
Wenn Sie Ihre eigenen hart codierte Setter / Getter verwenden möchten, können Sie die Magie Getter / Setter außer Kraft setzen. Siehe: http: //www.doctrine-project. org / Dokumentation / manual / 1_2 / en / Einführung-to-Modelle Beispiel:
class User erweitert BaseUser {
public function setPassword($password) { return $this->_set('password', md5($password)); }
}
Eine letzte Bemerkung / Frage:. Mit den magischen Setter / Getter-Methoden ist eine gute Praxis .. Sie sollten nur benutzerdefinierte Methoden verwenden, wenn Sie die Daten in irgendeiner Weise zu manipulieren, müssen