Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Garbin

Classe CRUD com PDO

Recommended Posts

Porque ele quebra totalmente a flexibilidade e a capacidade de reutilização de uma biblioteca/classe/função. Para erros, exception é a única solução elegante e amigável possível em PHP.

 

O exit simplesmente encerra a aplicação, sem mais nem menos. Isso torna impossível recuperar o erro e também impossível de fazer um teste unitário. O echo imprime arbitrariamente algo, enviando os headers HTTP. No final de tudo, aparecerá um belo "Headers already sent" na tela.

 

Essas funções (echo, exit, header) só deveriam ser usadas no front controller, que controlaria o fluxo da aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque ele quebra totalmente a flexibilidade e a capacidade de reutilização de uma biblioteca/classe/função. Para erros, exception é a única solução elegante e amigável possível em PHP.

 

O exit simplesmente encerra a aplicação, sem mais nem menos. Isso torna impossível recuperar o erro e também impossível de fazer um teste unitário. O echo imprime arbitrariamente algo, enviando os headers HTTP. No final de tudo, aparecerá um belo "Headers already sent" na tela.

 

Essas funções (echo, exit, header) só deveriam ser usadas no front controller, que controlaria o fluxo da aplicação.

 

Ou seja: é melhor usar print no lugar do echo. É isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara, o melhor é NÃO usar.

 

No mundo ideal, vc tem apenas 1 [inline]echo[/inline] no seu código todo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara, o melhor é NÃO usar.

 

No mundo ideal, vc tem apenas 1 [inline]echo[/inline] no seu código todo...

 

Que seria na classe responsável pela Resposta (Response) da Requisição (Request) feita.

 

Porém... Eu fazia um segundo echo no handler de Exceptions para forçar a mensagem ser enviada caso um exceção fosse lançada pela própria classe Response, evitando loop inifinito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão, pode me tirar essa dúvida? Porque sugeriu evitar exit e echo?

 

Basicamente, o tópico fala de classe e PDO. Quando você define bem a tarefa de uma função, você consegue utilizá-la em diversos locais.

 

Quando um método qualquer de uma classe qualquer é responsável por obter um valor e também imprimí-lo...

 

 

classe Usuario extends DB
{
    public function getIdade($id)
    {
        $usuario = $this->query("select * from usuario where id = {$id}");
        echo $usuario->fetch()->idade;
    }
}

 

... você amarra uma tarefa que poderia ser quebrada em duas te garantindo umas funcionalidades a mais.

 

Se quiséssemos verificar se o usuário é maior de idade sem imprimir esse valor, a primeira coisa seria tirar o echo de dentro do método. E a segunda seria sair que nem louco atrás de todos os lugares onde ele é necessário depois.

 

 

public function getAge()
{
    return $this->age;
}
 
public function isAdult()
{
    return $this->getAge() > 17;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.