1
resposta

[Projeto] Repositório - O que receber ao invés do Request nos repositórios

Na aula 02 do Capítulo 02, "Criando um repositório", o professor sugere que o repositório receber um request é ruim e deixa como desafio implementar uma forma melhor do repositório receber os dados. Diante disso, seria melhor o repositório receber um array ou um objeto model? Eu acho que recebendo um model deixa mais organizado e portável pra outros ORM's ou DBAL's que podem esperar receber um objeto nos seus métodos. Porém se eu receber um objeto no repository não consigo usar o método create e usar mass assignment, já que o método create espera um array. Nesse caso seria melhor receber um array no repositório e facilitar minha vida?

1 resposta

Olá Joel! Tudo bem com você? Espero que sim!

Peço desculpa pela demora para responder o seu tópico.

Receber um objeto model no repositório pode ser uma opção mais organizada e portável para outros ORM's ou DBAL's, como você mencionou. No entanto, você está correto ao dizer que isso pode dificultar o uso do método create e o uso de mass assignment.

Uma alternativa seria receber um array no repositório, o que facilitaria o uso do método create e permitiria o uso de mass assignment. Dessa forma, você poderia passar os dados necessários para criar um novo registro de forma mais simples.

Por exemplo, suponha que você tenha um repositório de usuários e queira criar um novo usuário. Se você receber um array no repositório, poderia fazer algo assim:

public function create(array $data)
{
    return User::create($data);
}

Dessa forma, você poderia chamar o método create passando um array com os dados necessários para criar um novo usuário.

Contudo, é importante lembrar que essa é apenas uma sugestão e a escolha entre receber um array ou um objeto model no repositório depende da estrutura do seu projeto e das suas necessidades específicas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.