Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Não somos amados por sermos bons. Somos bons porque somos amados. (Desmond Tutu)

7 - Debug e Erros

7 – Debug e Erros

Só existe uma maneira de evitar críticas: não fazer nada, não dizer nada e não ser nada.

Aristóteles

Debug/Depuração

Depuração é uma etapa inevitável e importante de qualquer ciclo de desenvolvimento. Ainda que o CakePHP não forneça nenhuma ferramenta que se conecte com qualquer IDE ou editor de texto, este oferece várias ferramentas que auxiliam na depuração e exibição de tudo que está sendo executado "por baixo dos panos" na sua aplicação.

 

Depuração Básica

Você pode usar as funções pr() ou debug() caso queira verificar erros em código ou apenas verificá-los.

debug(mixed $var, boolean $showHtml = null, $showFrom = true)

 

A função debug() é uma função de escopo global que funciona de maneira similar a função do PHP, print_r(). A função debug() exibe os conteúdos de uma variável de diversas maneiras. Primeiramente, se você deseja exibir os dados no formato HTML, defina o segundo parâmetro como true. A função também exibe a linha e o arquivo de onde a mesma foi chamada.

A saída da função somente é exibida caso a variável $debug do core esteja definida com o valor true.

debug($query) Mostra o SQL e os parâmetros incluídos, não mostra resultados.

debug($query->all()) Mostra a propriedade ResultSet retornado pelo ORM.

debug($query->toArray()) Um caminho mais fácil para mostrar todos os resultados.

debug(json_encode($query, JSON_PRETTY_PRINT)) Exemplo em JSON.

debug($query->first()) Primeiro resultado obtido na query.

debug((string)$query->first()) Mostra as propriedades de uma única entidade em JSON.

 

Tente isto na camada Controller: debug( $this->{EntidadeNome}->find()->all() );

 

Tratando erros

Cada SGBD tem seus próprios códigos de erro que podem ser capturados pelo PDO.

 

Dicas sobre erros no PDO no Cake

Criar o arquivo src/Template/Error/pdo_error.ctp, contendo

 

<?php
use Cake\Utility\Debugger;
?>

<h2>Erro no Cadastro</h2>
<p class="error">
<strong>Erro: Grupo não existe na tabela estrangeira<br></strong>

<?php
if($error->getCode() == 23503){
print "Este grupo não existe na tabela estrangeira.<br>Caso tenha realmente digitado de forma correta<br>e queira adicionar cadastre-o na tabela estrangeira<br>primeiro e depois cadastre o material com ele!";
}

//print $message;
?>
</p>

 

Tratamento de erro é uma missão nobre em aplicativos.

Aplicativos onde o programador prevê erros em todas as situações onde ele imagina que pode haver erro são aplicativos mais robustos. Os softwares de teste como o PHPUnit tem a missão de ajudar com isso.

 

Detalhes

https://book.cakephp.org/3.0/en/development/debugging.html

 

 

Comments fornecido por CComment

Novo Testamento

Agora, pois, por que tentais a Deus, pondo sobre a cerviz dos discípulos um jugo que nem nossos pais nem nós pudemos suportar?
(At, 15:10)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper