Pergunta

É possível usar a doutrina em modelos de entidades existentes como:

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 para gerar ou usar modelos com getters e setters codificados.

Eu não quero usar

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

Isso pode ser feito com a doutrina?

Obrigado

Foi útil?

Solução

Para todas as versões até a doutrina 1.2: Sua classe de modelos de entidade precisa estender a classe Doutrine_record.

A definição dos campos modelo também precisa ser feita da "maneira doutrina". Ver: http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models

exemplo:

função pública SettableDefinition () {

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

}

Se você deseja usar seus próprios setters/getters de codificação dura personalizados, poderá substituir os getters/setters mágicos. Ver: http://www.doctrine-project.org/documentation/manual/1_2/en/introduction-to-modelsexemplo:

classe Usuário estende BaseUser {

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

}

Uma última observação/pergunta: o uso dos métodos Magic Setter/Getter é uma boa prática. Você deve usar apenas métodos personalizados, se precisar manipular os dados de alguma forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top