Vous êtes ici Articles > PHP register_shutdown_func..

 

PHP register_shutdown_func..

Du coté PHP
 
PhpSources
Vu 8137 fois
Enregistré le 18 Mars 2008
  • Digg cet article sur digg.com
  • Bookmark cet article sur del.icio.us
  • Bookmark cet article sur Google
  • Bookmark cet article sur Yahoo
  • Ajoute PHP register_shutdown_func..
  • Partage cet article sur Facebook
 
 
 
 

PHP register_shutdown_func..


Eirik Hoem’s publie sur son blog un article permettant d’afficher des messages personnalisés lorsque PHP rencontre une erreur fatale. Je vous ai fais la traduction de l’article pour que vous puissiez mettre en pratique d’une manière confortable et rapide le register_shutdown_function en action.
Les scripts ont tendance à mourir, et en général ce n’est pas joli. Nous ne voulons pas montrer à l’utilisateur une erreur fatale ni une page vierge (affichage des erreurs off). PHP possède une fonction nommée register_shutdown_function qui nous permet de mettre en place une fonction qui est appelée lors de l’exécution du shutdown. Ce que ça signifie c’est que notre fonction sera exécutée lorsque notre script aura terminé son exécution/de mourir et l’exécution de PHP est sur le point de shutdown. En réglant la variable sur false au début de notre script, et en la mettant à true à la fin du script, nous avons notre fonction shutdown qui peut vérifier si le script s’est terminé avec succès ou non. Si notre variable est toujours fausse nous savons que nous ne sommes jamais arrivé à la dernière ligne de notre script., et donc que le script est mort en chemin.. J’ai préparé un exemple très basique qui vous montre comment vous pouvez donner à l’utilisateur un bon feedback dans le cas d’une erreur fatale. Vous allez pouvoir désactiver l’affichage des erreurs fatales pour que ça soit beau.

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
 
<?php
$clean false;
function shutdown_func(){
global $clean;
if (!$clean){
die(”not a clean shutdown”);
}
}

register_shutdown_function(’shutdown_func’);

$a 1;
$a = new FooClass(); // will fail with fatal

$clean true;
?>


Comme vous pouvez le voir, la fonction shutdown_func imprime quelque chose si la variable n'est pas propre à true lorsque la fonction d'arrêt court. Cela devrait bien sûr être enveloppé dans une classe (et PAS utiliser globals), et pour quelque chose de plus utilisable je recommande la vérification EZ Composants comme moyen d'y parvenir.
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Quelques articles qui devraient vous intéresser