Comment déboguer votre PHP des scripts ?
Je suis conscient du débogage de base, comme l'utilisation du rapport d'erreurs. Le débogage par points d'arrêt dans PHPEclipse est également très utile.
Existe-t-il d'autres bonnes/meilleures techniques ?
Comment déboguer votre PHP des scripts ?
Je suis conscient du débogage de base, comme l'utilisation du rapport d'erreurs. Le débogage par points d'arrêt dans PHPEclipse est également très utile.
Existe-t-il d'autres bonnes/meilleures techniques ?
Je suis cet article pour mettre en place un environnement Eclipse avec des fonctions de débogage comme celles que vous avez mentionnées. La possibilité d'entrer dans le code est un bien meilleur moyen de déboguer que l'ancienne méthode consistant à vidanger et à imprimer à différents endroits pour voir où le flux se trompe. Lorsque tout le reste échoue et que tout ce que j'ai est SSH et vim, je continue à var_dump()
/ die()
pour trouver où le code va mal.
C'est mon petit environnement de débogage :
error_reporting(-1);
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK, 'assert_callcack');
set_error_handler('error_handler');
set_exception_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function assert_callcack($file, $line, $message) {
throw new Customizable_Exception($message, null, $file, $line);
}
function error_handler($errno, $error, $file, $line, $vars) {
if ($errno === 0 || ($errno & error_reporting()) === 0) {
return;
}
throw new Customizable_Exception($error, $errno, $file, $line);
}
function exception_handler(Exception $e) {
// Do what ever!
echo '<pre>', print_r($e, true), '</pre>';
exit;
}
function shutdown_handler() {
try {
if (null !== $error = error_get_last()) {
throw new Customizable_Exception($error['message'], $error['type'], $error['file'], $error['line']);
}
} catch (Exception $e) {
exception_handler($e);
}
}
class Customizable_Exception extends Exception {
public function __construct($message = null, $code = null, $file = null, $line = null) {
if ($code === null) {
parent::__construct($message);
} else {
parent::__construct($message, $code);
}
if ($file !== null) {
$this->file = $file;
}
if ($line !== null) {
$this->line = $line;
}
}
}
XDebug est essentiel pour le développement. Je l'installe avant toute autre extension. Elle vous donne des traces de pile pour toute erreur et vous pouvez activer le profilage facilement.
Pour un aperçu rapide d'une structure de données, utilisez var_dump() . N'utilisez pas print_r() car vous devrez l'entourer de <pre>
et il n'imprime qu'une seule var à la fois.
<?php var_dump(__FILE__, __LINE__, $_REQUEST); ?>
Pour un véritable environnement de débogage, le meilleur que j'ai trouvé est le suivant IDE Komodo mais cela coûte $$$.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.