PHP - manipulação de erros, depuração e código de escrita

Fevereiro 2018


Como mostrar erros do PHP

Antes de mais nada, quando você estiver desenvolvendo, ative a visualização dos erros
PHP. Faça esta configuração no arquivo PHP.INI de seu servidor e/ou diretamente no código de suas páginas adicionando essas linhas:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

No arquivo PHP.INI, as instruções estão em um bloco como este:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
; error_reporting is a bit-field.  Or each number up to get desired error
; reporting level
; E_ALL             - All errors and warnings (doesn't include E_STRICT)
; E_ERROR           - fatal run-time errors
; E_WARNING         - run-time warnings (non-fatal errors)
; E_PARSE           - compile-time parse errors
; E_NOTICE          - run-time notices (these are warnings which often result
;                     from a bug in your code, but it's possible that it was
;                     intentional (e.g., using an uninitialized variable and
;                     relying on the fact it's automatically initialized to an
;                     empty string)
; E_STRICT     - run-time notices, enable to have PHP suggest changes
;                     to your code which will ensure the best interoperability
;                     and forward compatibility of your code
; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
;                     initial startup
; E_COMPILE_ERROR   - fatal compile-time errors
; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
; E_USER_ERROR      - user-generated error message
; E_USER_WARNING    - user-generated warning message
; E_USER_NOTICE     - user-generated notice message
;
; Exemplos:
;
;   - Show all errors, except for notices and coding standards warnings
;
;error_reporting = E_ALL & ~E_NOTICE
;
;   - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
;   - Show all errors except for notices and coding standards warnings
;
error_reporting  =  E_ALL & ~E_NOTICE

Como ativar o debug (depuração)

Muitas vezes, um script não funciona como desejamos, mas não sabemos onde está o problema. Para encontrá-lo, o mais simples é adicionar, em seu código, uma pequena depuração. A maneira mais fácil é exibir o conteúdo das diferentes variáveis.
Para string, um simples code php>echo $montexte;</code> é suficiente. Ao lidar com um objeto ou uma matriz, a intrução
print_r($mavariable);
bastará.
Claro que existem outras instruções, como o
var_dump
, mas você mesmo pode procurar.

Como escrever corretamente suas instruções PHP

Não há nenhuma obrigação real para escrever seu código. Há, no entanto, um padrão a partir do qual você pode inspirar-se: é o padrão PSR: PSR.

Como recuperar as recuperar as variáveis antes de usá-las

Ao usar variáveis (qualquer uma POST, GET, SESSION, BOLINHO ....) o melhor é recuperar adequadamente antes do uso no resto do seu código. Para isso, certifique-se que elas existam -se afirmativo, guarde seu valor. Para isso, eu sugiro que você use as funções ISSET ou !EMPTY (pronuncie não empty) com a escrita ternária (a escrita ternária é uma espécie de if/else). Por exemplo:

//Si la variable $_POST['nom'] existe et n'est pas vide, j'en récupère la valeur, sinon je mets la variable $nom à NULL
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;

NB: isset é usado para verificar se existe uma variável (IS SET)
!empty verifica que a variável não está vazia e que é isset. Portanto, não é necessário usar o isset quando se usar !empty.

Como nomear suas variáveis

É claro que vamos atribuir nomes que correspondam a alguma coisa. Se você nomear uma variável
$prenomUser
, este é o nome de um usuário que esperamos encontrar, e não a sua data de nascimento.

Caso contrário, durante a revisão do código (você em 6 meses ou um de seu colega amanhã (ou me se você me perguntar) vai ser complicado de entender o código.

Como cortar seu código

smaller is better Em outras palavras ... quanto menor for melhor! É melhor fazer 10 funções de 10 linhas de código ao invés de um bloco de 100 linhas ao mesmo tempo. O nível de manutenção e a leitura do código são bem melhores. Isso evitará códigos duplicados por nada. Se uma função faz mais de 20 linhas de código, devemos nos perguntar se não é possível cortá-lo em outras funções menores, Se não precisamos de função, pode-se de qualquer maneira colocar (centralizar) os códigos redundantes nos arquivos que bastará incluir (via INCLUD /REQUIRE )

Onde colocar seu código PHP

Para facilitar a leitura do código e fazer a sua manutenção e seu debug, coloca-se, em geral, o máximo de código PHP antes do seu código HTML. Ele também evita abrir/fechar tags PHP em todas as direções.

Conectar seu código a um banco de dados MYSQL

Note que que as antigas instruções do MYSQL se tornaram obsoletas. Agora você precisa passar pelas extensões MYSQLI ou PDO. Veja aqui: PHP, a extensão MYSQL é obsoleta. Em seguida, leia isso: Como se conectar a um banco de dados com DOP MYSQLI e PHP: gerenciar os erros
Nota:pPara facilitar amanutenção do seu código e evite reescrever as instruções de conexão com o banco de dados em cada uma das suas páginas, você deve colocar seu código de conexão no banco de dados em um arquivo separado (nomeado por exemplo
cnxbdd.php</ital>) e incluí-lo em suas páginas através de um require <code php> require_once "cnxbdd.php"; 

O que fazer se houver problema com a consulta SQL

Em caso de problemas com uma das suas consultas SQL, você deve primeiro testar diretamente em seu banco de dados. Usando (se estiver instalado) PHPMYADMIN, ou usando (se você puder ..) um cliente pesado, como HeidiSQl ou MysqlWorkbench: HeidiSQL

Poste seu código no fórum

Quando você fizer uma pergunta em algum fórum especializado sobre um problema de programação ou consulta SQL, indique seu código. Para isso, você tem que colá-lo diretamente no fórum usando as tags de código.
Foto: © PHP.
Artigo original publicado por jordane45. Tradução feita por ninha25. Última modificação: 12 de fevereiro de 2018 às 11:04 por ninha25.
Este documento, intitulado 'PHP - manipulação de erros, depuração e código de escrita ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (http://br.ccm.net/) ao utilizar este artigo.
Caracteres acentuados e o UTF-8 (Html/Php)
PHP - Como atualizar arquivos