Presenter Interface
[Finalizado Pelo Aluno]

Carlos, boa tarde.
Desculpa a pergunta, poderia me explicar o porquê de criar esse configuração do PAGINATE? O método default do laravel já não nos atende? Não consegui entender a criação da interface Presenter
Olá, Hugo!
Tudo bem?
Sim, o método default do Laravel super atende.
--
O que acontece, quando fazemos isso: NomeDoModel::paginate(); (ou usamos os métodos get ou all), isso retorna uma COLLECTION, que é um tipo específico do Laravel.
Neste contexto, se a gente sempre lidar com collection, estamos preso ao padrão de retorno do ORM. E se um dia precisar mudar o ORM, para por exemplo o Doctrine? Precisaria reescrever vários trechos de código para trabalhar com o formato do novo ORM.
O grande ponto aqui é a inversão de dependência, e não depender de um formato do ORM.
Fluxo:
Eloquent -> Presenter -> Usamos os dados
Doctrine -> Presenter -> Usamos os dados
Usamos os dados, em um controller, em uma view, em um resource, não importa.
Pegou a ideia amigo?

Carlos, bom dia.
Compreendi a ideia. Muito obrigado pelo esclarecimento.

Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!