ORM

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?

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…

tipo o hibernate, tenta o lumine, o cara se inspirou…

mas da pra usar doctrine no Yii

O lumine tbm junta toda a tranquera e bota na classe. :(

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:




$usuario = new Usuario;

$usuario->username = 'davi';

$usuario->password = '123mudar';

$usuario->save();



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;

}