Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Repository deletar Student pelo student id

Oi, queria apenas saber se essa implementação estaria correta, pq para deletar usando o repository da aula, teriamos que passar o tipo Student ou seja, algo como:

$student1 = new Student(1, 'Fulano', new DateTimeImmutable('2000-01-01'));
$studentRepository->delete($student1);

Ai quis implementar um deletar só informando o id e ficou assim:

public function deleteByIdStudent(int $id): array
    {

        $sqlQuery = 'DELETE FROM students WHERE id = ?;';
        $statement = $this->connection->prepare($sqlQuery);
        $statement->bindValue(1, $id, PDO::PARAM_INT);

        $statement->execute();

        return $this->hydrateStudentList($statement);

    }

para precisar apenas digitar:

$studentRepository->deleteByIdStudent(1);

Fiquei curioso se esse tipo de implementação foge dos padrões ou se foi algo "garrancho", isso seria valido?

1 resposta
solução!

Oii, Guilherme

Sua implementação é válida e não foge dos padrões. Porém, no método de exclusão pelo ID, note que você está retornando o hydrateStudentList($statement) após a execução do DELETE, e isso não é necessário, pois você está excluindo esse dado e a ideia não é retornar os dados do usuário deletado, a menos que você queria esse comportamento. O que você pode ter é retornar true em caso de sucesso e false em caso de falha.

E algo para você refletir: "E se o id passado não corresponder a nenhum id no banco? Nesse caso será que não faria sentido: realizar a busca pelo id do usuário primeiro (faz a instância do usuário), e depois usar o método de deletar da repository?"

É apenas algo para você refletir e vê o que vai fazer mais sentido para seu caso :)

Espero ter ajudado e bons estudos!