O objetivo desta apresentação é passar informações básicas sobre injeção de dependência, bem como alguns frameworks PHP existentes que nos trazem containers de injeção de depência.
4. Problemas do alto acoplamento
●
Dificuldade de testabilidade
●
Demora para entender o código
●
Manutenção do código
●
Baixa extensibilidade
●
Impossibilidade de reutilização
6. O que é DI?
“Dependency injection is a software design
pattern that allows a choice of component to be
made at run-time rather than compile time.”
http://en.wikipedia.org/wiki/Dependency_injection
8. <?php
namespace LcobucciSamples;
use PDO;
class UserManager
{
private $conn;
public function __construct()
{
$this->conn = new PDO(
'mysql:dbname=test;host=localhost',
'root',
'root'
);
}
}
16. Containers
●
Criam e armazenam os objetos de acordo com
as regras nele definidas
●
Possibilitam a separação entre a configuração
da criação dos objetos e o uso deles
●
Os objetos são denominados “serviços” e cada
um possui um identificador único.
●
É possível armazenar parâmetros para serem
utilizados na construção dos serviços
17. Frameworks
Devido facilitar a separação de responsabilidades
e manter o código mais limpo e organizado, os
frameworks modernos estão trazendo containers
de injeção de dependências através de seus
componentes.
Pimple RespectConfig
19. Conclusão...
●
Dependency Injection facilita a separação das
responsabilidades das suas classes, mantendo
baixo o acoplamento entre os componentes
●
Podemos utilizar Injeção de dependência
independentemente de frameworks e
containers
20. Obrigado!
Eu por aí: http://about.me/lcobucci
Slides: http://slideshare.net/lcobucci