Para quem quer estudar OOP. Padrões etc... Uma referencia excelente é o livro, traduzido para portugues: Entendendo e dominando o php - Matt Zandstra
Cada semana tiro alguns minutos para me aprofundar no que o livro tem. é muita informação. Vale o investimento. Abs Edinho Almeida 11 8018-8019 2009/1/29 Marco Antonio <[email protected]> > Complementando... > > - Programe para interface, não para implementação; > - Relacionamentos entre classes através da composição, no lugar de herança; > > Na boa pessoal, o que se percebe lendo os posts de hoje, é que o problema > não é no CodeIgniter mas falta de conhecimento de oop e programação em > geral. E nesse caso não vai ser aqui e nem em nenhum fórum que os problemas > serão resolvidos. Dá até para quebrar um galho daqui outro dali, mas uma > hora a casa cai... > Então não entendam como má-vontade de uns em ajudar, pelo contrário, a > maior ajuda que pode ser dada nesse caso é: estudem! > Sugiro também, como o Marcus, que procurem ler mais, principalmente sobre > padrões de projeto, ou design patterns... > > Abs > > > Marco Antonio > > ********* > * E-mail: [email protected] - Skype: coyote.pier > * Pier de Ipanema: http://www.pierdeipanema.com.br/ > * Pier de Ipanema no Orkut: > http://www.orkut.com.br/Main#Community.aspx?rl=cpp&cmm=2923344 > * CodeIgniter Php Framework: http://www.codeigniter.com.br > > > > Marcus Cavalcanti escreveu: > >> Herança multipla tras serios problemas de organização de código... >> >> Existe como vc fazer herança multipla de uma forma muito mais limpa usando >> interfaces... (http://www.guj.com.br/posts/list/25674.java) >> >> E não é o parent que resolve o problema, em herança qulaquer classe filha >> acessa os métodos da classe pai desde que esses não sejam "private". >> >> >> >> 2009/1/29 Vinicius Cruz <[email protected] <mailto:[email protected] >> >> >> >> Bom, resolvi colocar tudo na class MY_Controller mesmo... ¬¬ >> >> Herança múltipla faz falta. >> >> Vinicius >> >> 2009/1/29 Vinicius Cruz <[email protected] >> <mailto:[email protected]>> >> >> Newton, >> >> retornando à discussão, no teu artigo fala assim: >> >> "Pra resolver este problema, podemos criar nossa >> especialização na pasta de controllers da aplicação (ao invés >> da libraries), e incluir este arquivo nas classes que vamos >> estender. " >> >> Assim, o MY_relatorio estaria na pasta controller, extends >> Controller. Ok! >> Mas como um outro controller iria extender (ou incluir este >> arquivo) MY_relatorio? >> >> Um controller não pode extender outro controller, certo? No >> caso, seria através de uma instância? >> >> Vinicius >> >> 2009/1/29 Vinicius Cruz <[email protected] >> <mailto:[email protected]>> >> >> Valeu galera! >> >> Esqueci de nosso amigo parent:: =D >> >> Vinicius >> >> 2009/1/29 Rafael V. de Oliveira <[email protected] >> <mailto:[email protected]>> >> >> >> Pq vc não passa os dados via parâmetro? >> >> >> class MY_Controller extends Controller >> >> { >> >> function MY_Controller() >> >> { >> >> parent::Controller(); >> >> } >> >> >> function trata_var($var) >> >> { >> >> //Aqui eu trato a $var >> >> } >> >> } >> >> >> class Exemplo extends MY_Controller >> >> { >> >> function Exemplo() >> >> { >> >> parent::MY_Controller(); >> >> } >> >> >> function teste() >> >> { >> >> parent::trata_var('bla_bla'); >> >> } >> >> } >> >> >> *De:* [email protected] >> <mailto:[email protected]> >> [mailto:[email protected] >> <mailto:[email protected]>] *Em nome de >> *Vinicius Cruz >> *Enviada em:* quinta-feira, 29 de janeiro de 2009 >> 18:20 Rafael >> *Para:* CodeIgniter Brasil >> *Assunto:* Re: [CodeIgniter] Especialização de controller >> >> >> Pensei em algo do tipo, mas fiquei com dúvida pra >> tentar manter a ordem, digamos assim: >> >> >> class MY_relatorio extends MY_Controller{ >> >> private $var_filha; >> >> >> public function get()... >> >> >> public functon set($var)... >> >> >> } >> >> >> Class MY_Controller extends Controller{ >> >> >> public function generico() >> >> { >> >> //Como acessar $var_filha? >> >> } >> >> } >> >> >> No caso, teria que manter a variavel na classe extendida? >> >> >> Vinicius >> >> >> 2009/1/29 Edinho Almeida <[email protected] >> <mailto:[email protected]>> >> >> Não é isso ? >> >> >> class MY_Controller extends Controller{ >> >> public $var_da_filha = null; >> >> function talCoisa(){ >> >> echo $this->var_da_filha; >> >> } >> >> } >> >> >> class MY_relatorio extends MY_Controller{ >> >> function teste(){ >> >> $this->var_da_filha = "Classe my_relatorio"; >> >> $this->talCoisa(); >> >> } >> >> } >> >> >> Abs >> Edinho Almeida >> 11 8018-8019 >> >> 2009/1/29 Vinicius Cruz <[email protected] >> <mailto:[email protected]>> >> >> >> Pessoal, >> >> >> uma vez um artigo no Blog do Newton, falando sobre >> especialização de Controller. >> >> >> http://www.newtonwagner.net/code-igniter/especializando-controllers-no-code-igniter/ >> >> >> As imagens usadas no post não está aparecendo. Mas é o >> seguinte: baseado nas palavras do post do Newton, >> teriamos duas telas, de cadastro e relatorio. O que >> ele se propoe é criar duas especializações, cada qual >> com a lógica especifica ao negócio. >> >> >> O que eu entendi, é que seria algo mais ou menos assim: >> >> >> class MY_relatorio extends Controller{ ... >> >> >> class MY_cadastro extends Controller{ ... >> >> >> Correto? Agora, digamos que tenho uma class >> MY_Controller tenha funcões em comum a ambas >> especializações. Ao invés de dar um extends >> Controller, seria um extends MY_Controller. >> >> >> Meu problema (suspeito que seja mesmo de padrões de >> projetos) é que, na class MY_Controller, precise >> acessar uma informação da class filha. Deu pra >> entender? Digamos que em MY_relatorio tenha uma >> informação que precisa ser passada pra o método >> function geral_my_controller da class MY_Controller. >> >> >> Ou não estou conseguindo pensar numa solução, ou isso >> tá cheirando a POG. =/ >> >> >> Vinicius >> >> >> >> _______________________________________________ >> Lista mailing list >> [email protected] <mailto:[email protected]> >> >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> >> >> _______________________________________________ >> Lista mailing list >> [email protected] <mailto:[email protected]> >> >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> >> >> _______________________________________________ >> Lista mailing list >> [email protected] <mailto:[email protected]> >> >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> >> >> >> >> _______________________________________________ >> Lista mailing list >> [email protected] <mailto:[email protected]> >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> >> >> >> -- >> Marcus Cavalcanti >> 21 9144-5068 >> www.marcuscavalcanti.net/blog <http://www.marcuscavalcanti.net/blog> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Lista mailing list >> [email protected] >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> > > _______________________________________________ > Lista mailing list > [email protected] > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >
_______________________________________________ Lista mailing list [email protected] http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

