Entendendo injeção de dependência \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 16 Horas 

 53 Min 

 51 Seg 

   Tempo restante da oferta: 16 53 51 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Entendendo injeção de dependência  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

# Entendendo injeção de dependência

 Aprenda o que é injeção de dependência e como o princípio da inversão de dependência é importante para diminuir o acoplamento dos seus códigos.

 [ Kennedy Tedesco ](https://www.treinaweb.com.br/blog/autor/kennedy-tedesco) 10 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/inje--o.jpg)  

Alguns fatos preliminares:

- Se você ainda não sabe muito bem o que é *“injeção de dependência”*, bem, você pode até não saber, mas já utilizou esse “conceito” em algum momento da sua vida, nem que seja apenas na acadêmica. Acredite!
- O nome *“Injeção de dependência”* pode ser assustador, em essência, pelo simples fato de citar “injeção” logo de prima. Um leve arrepio nos acomete! :P
- É mais simples do que você imagina!
- O conceito é *agnóstico à linguagem*, ou seja, pode ser aplicado à qualquer linguagem que implemente o paradigma de *orientação a objetos*.

###### Para quem esse artigo foi escrito?

O ideal é que você tenha ao menos conhecimento básico em [orientação a objetos](https://www.treinaweb.com.br/blog/os-pilares-da-orientacao-a-objetos/ " Os pilares da orientação a objetos"). Apesar dos exemplos terem sido escritos em [PHP](https://www.treinaweb.com.br/blog/o-que-e-php/ "O que é PHP?"), não é difícil o paralelo com qualquer outra linguagem.

[  ![Laravel -  Service Container, Service Provider e Facades](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/laravel.svg)   Curso Laravel - Service Container, Service Provider e Facades Conhecer o curso ](https://www.treinaweb.com.br/curso/laravel-service-container-service-provider-e-facades)

## O que é uma dependência?

Uma dependência é simplesmente um objeto que a sua classe precisa para funcionar.

![Diagrama de dependência](https://d2m498l008ebpa.cloudfront.net/2016/10/diagrama1.png)

A classe `UserCommand` usa o objeto `Notification`. Podemos dizer que a classe `UserCommand` tem como dependência um objeto do tipo `Notification`.

## Como injeto uma dependência?

A dependência é injetada à classe que a utiliza, ou seja, obrigatoriamente ela precisa ser externa a essa classe.

Isso quer dizer que, para que haja uma injeção de dependência, a instanciação de um objeto não deve se dar dentro da classe, mas do lado de fora dela e então, injetada.

Vamos a um exemplo prático para clarear um pouco as coisas?

```php
