#1 Le 14/05/2015, à 07:51
- kleer
PHP : détecter la bonne fin d'un script
Bonjour,
En php j'aimerais faire en sorte que si un script s'est normalement exécuté, une fonction soit appelée automatiquement à la fin,
et que s'il est arrêté par un évènement comme un appel de exit(), die(), une erreur fatale ou autre situation qui ferait stopper le script,
une autre fonction soit appelée.
J'arrive bien à appeler une fonction automatiquement à la fin d'un script en utilisant register_shutdown_function()
Le problème est que je n'arrive pas à détecter une fin "normale"
Exemple :
function ok()
{
// Actions à faire pour une fin normale
}function ko()
{
// Actions à faire pour une fin anormale
}
<?php
echo "Début";
exit();echo "Ne sera jamais affiché";
// Pour cet exemple, ko() doit être appelée automatiquement car l’exécution du script est incomplète à cause de l'appel de exit()
?>
<?php
echo "Début";
a(); // Erreur fatale, la fonction a() n'est pas définieecho "Ne sera jamais affiché";
// Pour cet exemple, ko() doit être appelée automatiquement car l’exécution du script est incomplète à cause de l'appel d'une fonction indéfinie
?>
<?php
echo "Début";
echo "Fin normale";
// Pour cet exemple, ok() doit être appelée automatiquement car l’exécution du script est complète
?>
Es ce que quelqu'un sait comment faire ça ?
Merci de vos réponses
Hors ligne
#2 Le 14/05/2015, à 09:01
- tiramiseb
Re : PHP : détecter la bonne fin d'un script
Salut,
la fonction visée par "register_shutdown_function" est-elle exécutée même si l'exécution est incomplète à cause d'une erreur ?
En lisant la doc, on dirait que ça ne marche pas dans ce genre de cas.
À première vue j'ai l'impression que ce que tu veux n'est pas possible...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 14/05/2015, à 09:03
- tiramiseb
Re : PHP : détecter la bonne fin d'un script
... note également que, dans la logique globale du développement, quel que soit le langage, "exit()" représente une fin correcte.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 14/05/2015, à 13:04
- kleer
Re : PHP : détecter la bonne fin d'un script
Salut,
register_shutdown_function() semble fonctionner aussi en cas d'erreur fatale : si je met un affichage dans la fonction de rappel,
php m'affiche l'erreur fatale + ce que j'ai mis en affichage
Hors ligne
#5 Le 14/05/2015, à 17:52
- tiramiseb
Re : PHP : détecter la bonne fin d'un script
Il faut voir si tu peux accéder à la pile d'exécution.
Je ne sais pas si c'est faisable en PHP, par contre.
En Python oui, mais là n'est pas ta question
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne