Rares sont les personnes qui connaissent la fonction register_shutdown_function, et pourtant, selon plusieurs, elle est très utile dans certains cas. En fait, elle permet de réaliser des traitements hors transaction HTTP. Mais qu'est-ce que cela veut dire ? Voici un exemple plus parlant :
Le navigateur demande une page PHP au serveur Web. Celui-ci réalise l'appel à deux fonctions PHP pour produire la page demandée par le navigateur.
- La fonction 1 finit son traitement en 100 ms
- La fonction 2 finit son traitement en 200 ms
<?php
function fonction1()
{
// TODO
}
function fonction2()
{
// TODO
}
fonction1();
fonction2();
?>
function fonction1()
{
// TODO
}
function fonction2()
{
// TODO
}
fonction1();
fonction2();
?>
La page sera alors délivrée au client en 300 ms.
Voici un exemple d'utilisation de la fonction register_shutdown_function :
- La fonction 1 finit son traitement en 100 ms
- La page est retournée au client
- La fonction 2 finit son traitement en 200 ms après que la page ait été retournée au client.
<?php
function fonction1()
{
// TODO
}
function fonction2()
{
// TODO
}
register_shutdown_function("fonction2");
fonction1();
?>
function fonction1()
{
// TODO
}
function fonction2()
{
// TODO
}
register_shutdown_function("fonction2");
fonction1();
?>
La page sera alors délivrée au client en 100 ms.
L'avantage de cette fonction est de pouvoir exécuter un traitement lorsque le script PHP s'arrête suite à un exit() ou un die(). Ceci permet d'éviter de faire attendre un client sur des traitements qui n'auront aucun effet sur le résultat de sa demande.
Cette fonction est donc très utile pour :
- La suppression de ressources temporaires.
- La fermeture de socket ou de connexion à la base.
- Le logging
- Etc
Marquer favoris
Bookmark
Email This
Hits: 367
Commentaires (0)

Ecrivez un commentaire





















