Injeção de Dependência ou Inversão de Controle é um padrão de projeto que
resumidamente o que o definiria seria a frase "me dê algo que eu preciso sem
eu precisar pedir".

Ou seja, se você tem uma classe banco de dados por exemplo, que vc usa por
toda sua aplicação instanciando e ocupando espaço em memória, vc com DI faz
a injeção dessa classe onde vc usa, ou seja, o containter DI te dá o seu
objeto e não é vc que vai buscá-lo e guarda no contexto da sua aplicação.

Com interfaces vc pode fazer o mesmo, injetando onde vc quiser usar a
implementação dessa interface.

http://martinfowler.com/bliki/InversionOfControl.html



2008/8/18 Pedro Belmino <[EMAIL PROTECTED]>

>  Valeu pela solução Marcus, e agradeço também ao amigo Newton que se
> empenhou para tirar minha dúvida.
>
> Isso mesmo edinho.. =)
>
> Att,
>
> Edinho Almeida escreveu:
>
> A Classe Database do Core simula uma inteface, já no Kohana é interface
> mesmo.
> Com os métodos que são implementados nos drivers para cada tipo de
> Database.
>
> Abs
> Edinho
>
> 2008/8/18 Pedro Belmino <[EMAIL PROTECTED]>
>
>> ??
>>
>> Att,
>>
>> Newton Wagner escreveu:
>>
>> ???
>>
>> explica melhor ae! :D
>>
>> 2008/8/18 Marcus Cavalcanti <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>:
>>
>>
>>  Dependendy Injection para fazer load
>>
>> 2008/8/18 Newton Wagner <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
>>
>>  Pois é Belmino, mas o Code Igniter tem essas limitações, até por que
>> ele não foi feito pra trabalhar com Interfaces, devido à
>> compatibilidade com PHP 4.
>>
>> Outra idéia que me ocorreu agora é extender o Loader e criar um método
>> loader de interface que dá o require() mas não cria uma instância da
>> mesma.
>>
>>
>> 2008/8/18 Pedro Belmino <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>:
>>
>>
>>  Estou querendo evitar um require, acho que ele foge da idéia de load do
>> codeigniter.
>>
>> Att,
>>
>> Newton Wagner escreveu:
>>
>> O que eu chamei de "Outra solução" ali, na verdade é uma solução pra
>> carregar a Model_Interface automaticamente. :).
>>
>> Dando uma olhada aqui, acho que a criação da library não é uma boa. Eu
>> tinha pensado nisso, pois assim vc poderia carregar ela usando o
>> Loader, mas uma interface não pode ser instanciada, se não causa um
>> Fatal Error no PHP.
>>
>> Criando uma library, vc pode usar o Loader pra fazer o trabalho sujo,
>> mas acredito que ele vai tentar instanciar essa interface, o que
>> causaria um Fatal Error no PHP. A solução é criar esse arquivo em
>> algum local e dar um require() nele em algum momento.
>>
>>
>> Uma solução elegante, PHP 5, é implementar o __autoload() e botar uma
>> lógica pra ele carregar isso automaticamente, algo do tipo:
>>
>> function __autoload($class_name)
>> {
>>   if (preg_match("/Interface$/", $class_name)) {
>> require(APP_DIR."interfaces\".$class_name.".php"); }
>> }
>>
>> Isso ta básico, mas é o caminho.
>>
>>
>> 2008/8/18 Newton Wagner <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>:
>>
>>
>> Você pode usar a declaração de implements e extend ao mesmo tempo, tipo:
>>
>> class Usuario_Model extends Model implements Model_Interface {
>> }
>>
>> Você pode carregar a interface de diversas formas, mas acho que a
>> forma mais coerente, sem mexer no Core do CI, seria criar uma library
>> e carregar ela.
>>
>> Outra solução é criar o "MY_Model" e, no construtor dessa classe, ele
>> instanciar esse library da interface.
>>
>>
>> 2008/8/18 Pedro Belmino <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>:
>>
>>
>> A interface extends model?
>> As classes que vão implementar a interface vão dar o load da interface
>> aonde?
>>
>> Att,
>>
>> Newton Wagner escreveu:
>>
>> Acho que fica mais fácil você dizer logo qual a sua dúvida... a
>> resposta pra esse e-mail poderia ser só: "Sim".
>>
>> Mandae!!! Qual a dúvida? :).
>>
>>
>> 2008/8/18 Pedro Belmino <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>:
>>
>>
>> Olá,
>> Alguém já utilizou interface(Orientação a objetos) no codeigniter?
>>
>> Att,
>>
>> --
>> 'É um orgulho ter você como nosso cliente'
>> ____________________________
>> Pedro Belmino
>> Desenvolvedor
>>
>> ArgoHost.net
>> Hospedagem Web com Facilidadehttp://www.argohost.net
>> Suporte Telefônico: (85) 3264 9944 / (11) 4063 4844
>> Contato direto: Ramal 107
>> E-mail: [EMAIL PROTECTED]
>>
>>
>> _______________________________________________
>> Lista mailing [EMAIL 
>> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>>
>>
>>
>>
>> --
>> 'É um orgulho ter você como nosso cliente'
>> ____________________________
>> Pedro Belmino
>> Desenvolvedor
>>
>> ArgoHost.net
>> Hospedagem Web com Facilidadehttp://www.argohost.net
>> Suporte Telefônico: (85) 3264 9944 / (11) 4063 4844
>> Contato direto: Ramal 107
>> E-mail: [EMAIL PROTECTED]
>>
>> _______________________________________________
>> Lista mailing [EMAIL 
>> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>>
>>
>> --
>> Newton Wagner
>>
>> skype: newtonwagner
>> msn/gtalk: [EMAIL PROTECTED]
>> http://www.newtonwagner.net/
>> - http://www.owshit.com.br/
>>
>>
>>
>>
>>
>> --
>> 'É um orgulho ter você como nosso cliente'
>> ____________________________
>> Pedro Belmino
>> Desenvolvedor
>>
>> ArgoHost.net
>> Hospedagem Web com Facilidadehttp://www.argohost.net
>> Suporte Telefônico: (85) 3264 9944 / (11) 4063 4844
>> Contato direto: Ramal 107
>> E-mail: [EMAIL PROTECTED]
>>
>> _______________________________________________
>> Lista mailing [EMAIL 
>> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>>          --
>> Newton Wagner
>>
>> skype: newtonwagner
>> msn/gtalk: [EMAIL PROTECTED]
>> http://www.newtonwagner.net/
>> - http://www.owshit.com.br/
>>
>> _______________________________________________
>> Lista mailing [EMAIL 
>> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>  _______________________________________________
>> Lista mailing [EMAIL 
>> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>>
>> --
>> 'É um orgulho ter você como nosso cliente'
>> ____________________________
>> Pedro Belmino
>> Desenvolvedor
>>
>> ArgoHost.net
>> Hospedagem Web com Facilidadehttp://www.argohost.net
>> Suporte Telefônico: (85) 3264 9944 / (11) 4063 4844
>> Contato direto: Ramal 107
>> E-mail: [EMAIL PROTECTED]
>>
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>
>
> --
> Abs
> Edinho Almeida
> 11 8962-9406
>
> ------------------------------
>
> _______________________________________________
> Lista mailing [EMAIL 
> PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
> --
> 'É um orgulho ter você como nosso cliente'
> ____________________________
> Pedro Belmino
> Desenvolvedor
>
> ArgoHost.net
> Hospedagem Web com Facilidadehttp://www.argohost.net
> Suporte Telefônico: (85) 3264 9944 / (11) 4063 4844
> Contato direto: Ramal 107
> E-mail: [EMAIL PROTECTED]
>
>
> _______________________________________________
> 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