Zend Framework et de la doctrine (accesseurs)
-
20-09-2019 - |
Question
Est-il possible d'utiliser la doctrine sur les modèles d'entités existantes comme:
class user{
protected $_id;
protected $_name;
public function set_id($_id){}
public function get_id(){}
public function set_name($_name){}
public function get_name(){}
}
ou pour générer ou utiliser des modèles avec des accesseurs codés en dur.
Je ne veux pas utiliser
$user->name
$user['name']
$user->get('name')
cela peut être fait avec la doctrine?
Thanx
La solution
Pour toutes les versions jusqu'à Doctrine 1.2: a besoin de votre modèle d'entité classe pour étendre la classe Doctrine_Record.
La définition des champs du modèle doit être fait la « voie de doctrine » aussi. Voir: http://www.doctrine-project.org/ documentation / manuel / 1_2 / fr / définitoires modèles
exemple:
fonction publique setTableDefinition () {
$this->hasColumn('username', 'string', 255); $this->hasColumn('password', 'string', 255);
}
Si vous souhaitez utiliser vos propres setters / getters codés sur mesure dur, vous pouvez remplacer la magie getters / setters. Voir: http: //www.doctrine-project. org / documentation / manuel / en / 1_2 / mise-à-modèles exemple:
class utilisateur {étend BaseUser
public function setPassword($password) { return $this->_set('password', md5($password)); }
}
Une dernière remarque / question. En utilisant les méthodes setter / getter magie est une bonne pratique .. Vous ne devez utiliser des méthodes personnalisées, si vous avez besoin de manipuler les données d'une certaine façon