OK, vamos lá estudar um pouco mais a fundo ORM.
J De: [email protected] [mailto:[email protected]] Em nome de Eric Saboia Enviada em: sexta-feira, 15 de outubro de 2010 13:53 Para: CodeIgniter Brasil Assunto: Re: [CodeIgniter] RES: RES: Duvida sobre abstração de Classe Acho que fui eu.. haeuhaeuheuh Cara, quanto ao que você falou do banco de dados, é o que eu disse, só vale a pena usar abstração em bancos se você tiver utilizando ORM, que daí o framework se encarrega de montar o objeto de persistência a partir da classe e suas N heranças, na verdade ORM é exatamente isso, transformar um banco em um modelo orientado a objetos. 2010/10/15 Ademir C Gabardo <[email protected]> Essa thread tava morta faziam duas semanas já. Alguém ressuscitou ela hj. heheheh De: [email protected] [mailto:[email protected]] Em nome de Eric Saboia Enviada em: sexta-feira, 15 de outubro de 2010 12:00 Para: CodeIgniter Brasil Assunto: Re: [CodeIgniter] RES: Duvida sobre abstração de Classe Estranho, Rafael, não tinha visto nenhuma mensagem sua nessa thread ainda... 2010/10/15 Rafael V. de Oliveira <[email protected]> Eu acabei por escrever "errado". Para melhorar o exemplo, dentro da classe Veiculo, o método andar não pode ter implementação. Seria apenas: abstract protected function andar(); Quem faz a implementação do método é a "herdeira". Em 2010/10/15, às 15:54, Rafael V. de Oliveira escreveu: Eu não acho que o CodeIgniter é o melhor para utilizar nestes exemplos, uma vez que ele está preso no PHP4. Mas a abstração é mais ou menos isso. Tanto a pessoa física quanto a jurídica partilha dados em comum. Ao herdar as 2 classes de uma super-pai, neste caso a classe Pessoa, eu não preciso reescrever métodos. Outro exemplo recorrente é do veículo. abstract class Veiculo { public function set_rodas( $quantidade ) { $this->rodas = $quantidade; } abstract protected function andar() { echo 'moving, moooooving'; } } class Carro extends Veiculo { protected function andar() { echo 'carro em movimento'; } } $veiculo = new Carro(); $veiculo->set_rodas(4); $veiculo->andar(); Mais ou menos isso. Corrigam-me se eu estiver errado, mas isso não dá pra fazer no CodeIgniter. Em 2010/10/15, às 15:39, Ademir C Gabardo escreveu: Foi a mesma conclusão a que cheguei. Lembrando que esse é apenas um exemplo didático, uma tentativa de compreender como poderia ser feita a abstração de classes na estrutura do CodeIgniter. Talvez (e muito provavelmente) existam exemplos mais práticos e simples de aplicar, mas a faculdade deixa a gente meio bitolado as vezes. Falou em abstração de classe sempre lembra da classe pessoa, exemplo recorrente. Eu estou tentando compreender melhor esses conceitos de abstração. Na prática, eu crio uma classe para pessoa física e outra para jurídica. Não costumo misturar as duas. Galera, opiniões? Críticas? Mais dúvidas? Novas sugestões? Att Ademir De: [email protected] [mailto:[email protected]] Em nome de Eric Saboia Enviada em: sexta-feira, 15 de outubro de 2010 11:33 Para: CodeIgniter Brasil Assunto: Re: [CodeIgniter] Duvida sobre abstração de Classe Pensando bem, apesar de não fazer sentido pra mim fazer tal coisa em um Controller, a solução seria a mesma pra Models: abstract class Pessoa extends Model { } class PessoaFisica extends Pessoa { } Dessa forma, PessoaFisica herdaria todos os metodos de Model, além de herdar os métodos não abstratos de Pessoa, e seria obrigada a implementar os métodos abstratos de Pessoa 2010/10/15 Eric Saboia <[email protected]> Nem entendi seu problema, por isso fica difícil ajudar. Não entendo pra que você quer estender uma classe abstrata em controllers, no seu exemplo de Pessoas, não seria isso uma entidade, e portanto seria feito nos Models? 2010/10/4 Julio Fagundes <[email protected]> Pois é! tipo em cascata. Nessa caso se a class abstrata herdar ao controller, acho que matou a charada não? Sds Julio Fagundes Vinicius Cruz escreveu: Quando diz que não suporta herança múltipla, senão me engano o C suporta, seria fazer algo assim: class teste extends teste1, teste3 Portanto, é válida a class abstrata herdar, e a concreta herdar a abstrata. Att, Vinicius Cruz http://twitter.com/vinaocruz http://www.zime.com.br/ Em 4 de outubro de 2010 17:21, Ademir C Gabardo <[email protected] <mailto:[email protected]>> escreveu: Viajar não viajou, mas o problema é que o PHP Não tem suporte a Herança Multipla, então se ele já herda as propriedades do Controlle não poderá herdar novamente da classe abstrata, eis o dilema. Alguma sugestão? Att Ademir ----- Original Message ----- *From:* Vinicius Cruz <mailto:[email protected]> *To:* CodeIgniter Brasil <mailto:[email protected]> *Sent:* Monday, October 04, 2010 5:11 PM *Subject:* Re: [CodeIgniter]Duvida sobre abstração de Classe No caso, seria adicionar na class abstrata a herança do Controller? Consequentemente, teriamos as classes concretas com os métodos herdados da classe abstratas e os métodos do controller principal. Viajei?! Att, Vinicius Cruz http://twitter.com/vinaocruz http://www.zime.com.br/ Em 4 de outubro de 2010 16:51, Ademir C Gabardo <[email protected] <mailto:[email protected]>> escreveu: Galera, estou escrevendo um artigo que servirá como base para um material para novatos em OO + PHP5 sobre abstração de classes em PHP e o uso dos Magic Methods do PHP 5. Para isso, estou usando como exemplo a abstração da classe pessoa. Mas aí surgiu uma dúvida cruel. Imaginem o modelinho. //Abstrata class Pessoa(){ } //Concreta class PessoaFisica extends Pessoa(){ } //Concreta class PessoaJuridica extends Pessoa(){ } Como vocês fariam isso no CodeIgniter uma vez que os controladores já herdam do controller principal? Fiquei imaginando um modo de fazer com Interface. Alguma dica dos membros da lista? Abraços Ademir Gabardo. _______________________________________________ [email protected] <mailto:[email protected]> http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- ------------------------------------------------------------------------ _______________________________________________ [email protected] <mailto:[email protected]> http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- _______________________________________________ [email protected] <mailto:[email protected]> http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- ------------------------------------------------------------------------ _______________________________________________ [email protected] http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- _______________________________________________ [email protected] http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- -- Eric Saboia - eric.saboia.org <http://eric.saboia.org/> PHP Zend Certified Engineer -- Eric Saboia - eric.saboia.org <http://eric.saboia.org/> PHP Zend Certified Engineer _______________________________________________ [email protected] http://www.codeigniter.com.br <http://www.codeigniter.com.br/> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net <http://www.franquiasargohost.net/> --------------------------- _______________________________________________ [email protected] http://www.codeigniter.com.br http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net --------------------------- _______________________________________________ [email protected] http://www.codeigniter.com.br http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net --------------------------- -- Eric Saboia - eric.saboia.org PHP Zend Certified Engineer _______________________________________________ [email protected] http://www.codeigniter.com.br http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net --------------------------- -- Eric Saboia - eric.saboia.org PHP Zend Certified Engineer
_______________________________________________ [email protected] http://www.codeigniter.com.br http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

