Inversão de dependencia
[Finalizado Pelo Aluno]
Boa noite, Professor,
Me surgiu uma dúvida, hoje aplico da seguinte forma crio a interface e implemento ela em um repositorie e depois pego esse repositorie e injeto no construtor do service.
Exemplo:
interface ClientRepositoryInterface
{}
class ClientRepository implements ClientRepositoryInterface
{}
class ClientService
{
public $clientRepository;
public function __construct(ClientRepository $clientRepository)
{
$this->clientRepository = $clientRepository;
}
}
Mas no caso da aula você inclui a interface no service, qual a diferença entre usar a forma do video e essa do exemplo acima? e qual seria a mais indicada para se usar?
Olá, Lucas!
Tudo bem?
Primeiro ponto é que não existe o jeito certo para todos os casos, cada caso deve ter um tipo de abordagem.
Em muitos projetos, basta injetar o model mesmo diretamente no controller, e tudo certo, já vai atender.
Em projetos maiores é super recomendado trabalhar com as camadas service + repository e etc.
No caso da interface para repository é super válido, desde que desacople o ORM, digo, a ideia de usar a interface é justamente a liberdade de poder de trocar de ORM ou nem mesmo usar um.
Fui claro amigo?
Foi sim, obrigado!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!