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