1
resposta

GetDoctrine

Pelo que eu vi o getDoctrine esta obsoleto.

#[Route("/medicos", methods: ["GET"])] public function buscarTodos():Response {

    $repositorioMedicos = $this
        ->entityManager
        ->getRepository(Medico::class);
       $medicoList=$repositorioMedicos->findAll();
       return new JsonResponse($medicoList);
}


fiz desta forma
1 resposta

Olá Diego, tudo bem? Espero que sim!

Na verdade, o método em si não está obsoleto, mas a forma como ele é utilizado mudou nas versões mais recentes do Symfony.

Antes, era comum utilizar o método getDoctrine para obter o objeto EntityManager e, a partir dele, realizar operações no banco de dados. No entanto, essa abordagem foi considerada obsoleta e agora é recomendado utilizar a injeção de dependência para obter o EntityManager.

No seu código, você está utilizando o entityManager diretamente, o que pode funcionar, mas não é a forma mais indicada. Uma alternativa seria injetar o EntityManagerInterface no construtor da sua classe e utilizá-lo para obter o repositório de médicos. Ficaria algo assim:

use Doctrine\ORM\EntityManagerInterface;

// ...

private $entityManager;

public function __construct(EntityManagerInterface $entityManager)
{
    $this->entityManager = $entityManager;
}

public function buscarTodos(): Response
{
    $repositorioMedicos = $this->entityManager->getRepository(Medico::class);
    $medicoList = $repositorioMedicos->findAll();
    return new JsonResponse($medicoList);
}

Dessa forma, você está utilizando a injeção de dependência para obter o EntityManager e não precisa mais utilizar o método getDoctrine.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!