PcKULT.NET - La référence en informatique

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

PcKULT.NET - Recrute

PcKULT.NET est présentement à la recherche de passionnés d'informatique qui veulent se greffer à l'équipe de PcKULT.NET. Si l'aventure vous intéresse, veuillez communiquer avec nous.

webmaster@pckult.net


La fonction register_shutdown_function sous PHP

E-mail Imprimer PDF
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();
?>

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();
?>

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
Remarque : cette fonction ne fonctionne pas sous Windows.


Ajouter cette page à votre Digg-Like préféré
Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! Technorati! StumbleUpon! Spurl! Furl! Blogmarks! Yahoo! FeedMeLinks!
Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy
 

Sondage

Votre fournisseur Internet
 

Publicités