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]>

> Valeu galera!
> Esqueci de nosso amigo parent:: =D
>
> Vinicius
>
> 2009/1/29 Rafael V. de Oliveira <[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]] *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]>
>>
>> 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]>
>>
>> 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]
>> 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
>>
>>
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a