Zend Framework e la dottrina (getter e setter)
-
20-09-2019 - |
Domanda
E 'possibile utilizzare la dottrina su modelli di entità esistenti come:
class user{
protected $_id;
protected $_name;
public function set_id($_id){}
public function get_id(){}
public function set_name($_name){}
public function get_name(){}
}
o di generare o utilizzare modelli con getter hard-coded e setter.
Non voglio usare
$user->name
$user['name']
$user->get('name')
questo può essere fatto con la dottrina?
Grazie
Soluzione
Per tutte le versioni fino a Doctrine 1.2: La classe modelli di entità deve estendere la classe Doctrine_Record.
La definizione dei campi del modello deve essere fatto "via dottrina" troppo. Vedere: http://www.doctrine-project.org/ documentazione / manuale / 1_2 / it / definire modelli
Esempio:
Funzione pubblica setTableDefinition () {
$this->hasColumn('username', 'string', 255); $this->hasColumn('password', 'string', 255);
}
Se si desidera utilizzare il proprio setter personalizzati codificati duro / Getters è possibile ignorare i magici getter / setter. Vedere: http: //www.doctrine-project. / 1_2 / modelli introduzione-to-it / org / documentazione / manuali Esempio:
estende la classe utente BaseUser {
public function setPassword($password) { return $this->_set('password', md5($password)); }
}
Un'ultima osservazione / domanda:. Usando i metodi setter / getter magia è buona pratica .. Si consiglia di utilizzare solo metodi personalizzati, se avete bisogno di manipolare i dati in qualche modo