---
title: "Discussion on \"Princípios SOLID: o que são e como aplicá-los no PHP/Laravel (Parte 05 - Inversão de Dependência)\" | Hashnode"
description: "Discussion on \"Princípios SOLID: o que são e como aplicá-los no PHP/Laravel (Parte 05 - Inversão de Dependência)\". Dando continuidade à série de artigos sobre princípios SOLID, trago hoje o quinto e último dos princípios.\nDependency Inversion Principle\n(Princípio da Inversão de Dependência)\n\nEntidades devem depender de abstrações e não de algo concreto. Isso sign..."
url: "https://hashnode.com/posts/principios-solid-o-que-sao-e-como-aplica-los-no-phplaravel-parte-05-inversao-de-dependencia/60e6f8ba4e18000309d80c68"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Princípios SOLID: o que são e como aplicá-los no PHP/Laravel (Parte 05 - Inversão de Dependência)](https://lucascavalcante.dev/principios-solid-o-que-sao-e-como-aplica-los-no-phplaravel-parte-05-inversao-de-dependencia?utm_source=hashnode&utm_medium=feed)

Dando continuidade à série de artigos sobre princípios SOLID, trago hoje o quinto e último dos princípios. Dependency Inversion Principle (Princípio da Inversão de Dependência) Entidades devem depender de abstrações e não de algo concreto. Isso sign...

Mar 17, 2021 · 3 min read · lucascavalcante.dev  
Read the article

-   [#php](https://hashnode.com/tag/php)
-   [#solid-principles](https://hashnode.com/tag/solid-principles)
-   [#architecture](https://hashnode.com/tag/architecture)
-   [#laravel](https://hashnode.com/tag/laravel)

## Written by

[Lucas Cavalcante](https://hashnode.com/@lucascavalcante)

@lucascavalcante · Brazil

  
[View profile](https://hashnode.com/@lucascavalcante)

Software Engineer

## Responses 1

Markdown supported · ⌘↵ to post

[Junior Neves](https://hashnode.com/@juniorneves)

[Sep 15, 2021](https://hashnode.com/posts/principios-solid-o-que-sao-e-como-aplica-los-no-phplaravel-parte-05-inversao-de-dependencia/60e6f8ba4e18000309d80c68/comment/61426ef79c949972b85c790f)

Muito legal Lucas! Até atualizei os controllers dos meus projetos aqui pra chamar a interface do service.

Uma dica pra caso alguém esteja caindo no erro "**Target \[App\\Services\\UserServiceInterface\] is not instantiable while building \[App\\Http\\Controllers\\UserController\]**" é que precisa criar um Service Provider e bindar a interface com a classe. O mesmo serve pra InterfaceRepository com o Repository.

Fica mais ou menos algo assim:

```
$this->app->bind(
            UserServiceInterface::class,
            UserService::class,
        );
```

[Lucas Cavalcante](https://hashnode.com/@lucascavalcante)

[Sep 16, 2021](https://hashnode.com/posts/principios-solid-o-que-sao-e-como-aplica-los-no-phplaravel-parte-05-inversao-de-dependencia/60e6f8ba4e18000309d80c68/comment/61426ef79c949972b85c790f#reply-614353ccdbe60379639b0259)

Muito bom, Junior!

Exatamente, para criar interfaces que irão servir como abstrações na injeção da dependência, precisamos criar um Provider para fazer o bind, e depois adicionar esse provider no `config/app.php` (Laravel) ou `bootstrap/app.php` (Lúmen).
