#5 Clean Architecture – Infra Layer: Adapters

Depois de termos conhecido e criado juntos toda a camada Application e também as abstrações necessárias, neste vídeo vamos começar a criar os adapters na Camada Infrastructure, que nesse caso, unifiquei a camada Interface Adapters com a Frameworks e Drivers do desenho original do Tio Bob.

Definação do Autor

Interface Adapters

O software da camada de adaptadores de interface consiste em um conjunto de adaptadores que convertem dados no formato que é mais conveniente para os casos de uso e entidades, para o formato mais conveniente para algum agente externo como a base de dados ou a web.

Os apresentadores (Presenters), visualizações e controladores (Controllers) pertencem à camada de adaptadores de interface. Os modelos provavelmente são apenas estruturas de dados transmitidas dos controladores para os casos de uso e, então, dos casos de uso para os apresentadores e visualizações.

De maneira similar, os dados dessa camada são convertidos da forma mais conveniente para entidades e casos de uso para a forma mais conveniente para o framework de persistência em uso (por exemplo, a base de dados).Nenhum código interno desse círculo deve saber nada sobre a base de dados. Fluxo do controle: ele começa no controlador (Controller), passa pelo caso de uso (Use Case) e, então, acaba sendo executado no apresentador (Presenter).

Fonte: Clean Architecture Book (Página 205)

Frameworks and Drivers

A camada mais externa e é geralmente composta de frameworks e ferramentas como a base de dados e o framework web. Em geral, você não programa muita coisa nessa camada além do código de associação que estabelece uma comunicação com o círculo interno seguinte. Todos os detalhes ficam na camada de frameworks e drivers. A web é um detalhe. A base de dados é um detalhe. Mantemos essas coisas do lado de fora, onde não podem fazer mal nenhum.

Fonte: Clean Architecture Book (Página 205)

Dentro dessa camada também terá os contratos necessários para que as camadas mais externas possam se comunicar com esta.

Reforçando que quase todas as informações que utilizei nesses estudos eu extrai do livro Arquitetura Limpa do Uncle Bob, se tiver interesse de conhecer livro, compra com meu link da Amazon =)

Vídeo Aula

Depois de você ter lido a definição dessa camada direto da fonte, agora você poderá assistir a vídeo aula onde faço as implementações das abstrações do Use Case.

Qualquer dúvida, sugestão, crítica ou qualquer sentimento que você tiver, por favor, não deixa de colocar teu comentário aqui no post.

Forte abraço.

Links utilizados na aula

Link Repositório
https://github.com/dersonsena/clean-arch-youtube

Artigo do Ian Rodrigues sobre Value Objects
https://dev.to/ianrodrigues/writing-value-objects-in-php-4acg

Apresentação do Ian Rodrigues sobre Value Objects
https://speakerdeck.com/ianrodrigues/trabalhando-com-value-objects-no-php

Github Html2Pdf
https://github.com/spipu/html2pdf

Documentação PHP File Put Contents
https://www.php.net/manual/pt_BR/function.file-put-contents.php