Usar o Dao na mao e muito trabalhoso, e usar AR acho que fica muita responsabilidade para a class, alguem ja pensou em trabalhar com ORM usando o yii ??
Page 1 of 1
ORM
#2
Posted 20 November 2009 - 12:10 PM
catataw, on 20 November 2009 - 08:26 AM, said:
Usar o Dao na mao e muito trabalhoso, e usar AR acho que fica muita responsabilidade para a class, alguem ja pensou em trabalhar com ORM usando o yii ??
Bom, até onde eu saiba AR é uma forma de ORM, não?
Que tipo de responsabilidade você acha que está em exagero no AR?
#3
Posted 20 November 2009 - 12:22 PM
o objeto de negocio se auto savar, ele fazer busca pra trazer objeto dele mesmo isso nao deveria ser responsabilidade do objecto e sim de um DAO o ORM vc faz o mapeamento dos atributos referente ao campo da tabela, ja o AR sua propria entidade do banco e o model, com o orm os meus tributos tao mapeado dae passo para um DAO e ele faz a camada da persistencia nao o proprio objeto... por ex no meu objeto coloco o atributo como nome e faco o mapeamento pro meu banco razaosocial...
#4
Posted 20 November 2009 - 12:58 PM
catataw, on 20 November 2009 - 12:22 PM, said:
o objeto de negocio se auto savar, ele fazer busca pra trazer objeto dele mesmo isso nao deveria ser responsabilidade do objecto e sim de um DAO o ORM vc faz o mapeamento dos atributos referente ao campo da tabela, ja o AR sua propria entidade do banco e o model, com o orm os meus tributos tao mapeado dae passo para um DAO e ele faz a camada da persistencia nao o proprio objeto... por ex no meu objeto coloco o atributo como nome e faco o mapeamento pro meu banco razaosocial...
Até concordo.
Na verdade até acho que seria o correto na OOP pelo fato de que Pessoa nao insere, nem exclui nada.
Classe Pessoa é uma representação de uma Pessoa. Ponto. E só! Daí armazenar as pessoas em um banco de
dados já é outra coisa.
Agora único fw que vi trabalhando dessa forma foi o Hibernate, que por sinal faz uma falta muito grande no PHP..
"Sucesso é ganhar dinheiro fazendo o que você faria de graça" - Um Gênio
#5
Posted 20 November 2009 - 01:13 PM
tipo o hibernate, tenta o lumine, o cara se inspirou...
mas da pra usar doctrine no Yii
mas da pra usar doctrine no Yii
#6
Posted 20 November 2009 - 01:19 PM
O lumine tbm junta toda a tranquera e bota na classe.
"Sucesso é ganhar dinheiro fazendo o que você faria de graça" - Um Gênio
#7
Posted 20 November 2009 - 02:06 PM
Não conheço O Hibernate (ando fugindo de tudo relacionado a Java =D), então não faço idéia de como ele faz o trabalho. Já o Doctrine, pelo o que vi, é um AR mais avançado, ou estou falando besteira?
De fato, o AR quebra o principio da responsabilidade única, mas, na maioria dos casos não vejo isso como problema. Em projetos grandes, onde o volume de informações seja grande e a performance seja algo crucial, acredito que o AR vai ser um problema.
No geral é muito mais fácil fazer algo do tipo:
De fato, o AR quebra o principio da responsabilidade única, mas, na maioria dos casos não vejo isso como problema. Em projetos grandes, onde o volume de informações seja grande e a performance seja algo crucial, acredito que o AR vai ser um problema.
No geral é muito mais fácil fazer algo do tipo:
$usuario = new Usuario; $usuario->username = 'davi'; $usuario->password = '123mudar'; $usuario->save();
#8
Posted 20 November 2009 - 03:03 PM
Rss dei de referencia o hibernet pois ele e o mais famoso ORM,e quye to nesta situacao aonde o projeto que to trabalhando e um pouco grande uma situacao aonde o AR pode transforma se em um problema quando vc tem fazer uma persistencia e quando faz a persistencia tem que fazer n coisas sei que no AR temos o afters ... befores so que dae a class comeca fazer muito mais coisas do que ela precisa .. alem de fazer a persistencia usando um ORM por ex
vc teria o DAO que fazer a persistencia
UsuarioDAO...
salvar($usuario){
$session = $conecao->factorSession;
$session->save($usuario);
$session->flush;
.....
}
vc teria o DAO que fazer a persistencia
UsuarioDAO...
salvar($usuario){
$session = $conecao->factorSession;
$session->save($usuario);
$session->flush;
.....
}
Share this topic:
Page 1 of 1

Help












