Pois é... dar dá, até porque se vc estiver rodando ele num servidor PHP5 ele funciona direitinho com os métodos mágicos.
__construct() __get() __set() e ctc... Só que a grande dúvida que me ocorre com PHP é até que ponto isso é vantajoso. Porque na hora de gravar no DB eu vou ter que ficar retalhando meu objeto final, buscando partes da classe concreta e outras da super classe. Me preocupar em montar tudo isso de forma coerente para entregar ao DB o objeto concreto da forma esperada. O quanto este esforço da abstração compensa na NÃO necessidade de escrever certos métodos ou atributos novamente. Desculpem a ignorância sobre o tema, mas realmente ainda não encontrei um exemplo prático de abstração de classe no PHP que convença de que ganhei performance ou tempo de escrita de código. (Lá vou eu com as polêmicas de novo, vão me queimar na fogueira depois dessa). Obrigado a todos que responderam. Abraços Ademir De: [email protected] [mailto:[email protected]] Em nome de Rafael V. de Oliveira Enviada em: sexta-feira, 15 de outubro de 2010 11:54 Para: CodeIgniter Brasil Assunto: Re: [CodeIgniter] RES: Duvida sobre abstração de Classe 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://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net --------------------------- ------------------------------------------------------------------------ _______________________________________________ [email protected] <mailto:[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] <mailto:[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 --------------------------- _______________________________________________ [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 -- 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 ---------------------------
_______________________________________________ [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 ---------------------------

