Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



"declare"

L’élément de langage “declare” sert à ajouter des directives d’exécutions dans un bloc de code. La syntaxe de “declare” est similaire à la syntaxe des autres fonctions de contrôle :

Exemple 16-29. Instruction “directive” declare (directive) commandes

L’expression “commandes” du bloc de “declare” sera exécutée. Comment elle sera exécutée, et quels effets cela aura dépend de la directive utilisée dans le bloc “directive”.

La structure “declare” peut aussi être utilisée dans le contexte global. Elle affecte alors tout le code qui la suit :

Exemple 16-30. Instruction “directive” en contexte global

<?php
// Ces déclaration sont identiques.
 
// Vous pouvez utiliser ceci
declare(ticks=1) {
    // script entier ici
}
 
// ou ceci
declare(ticks=1);
// script entier ici
?>

Ticks

Un tick est un événement qui intervient toutes les “N” commandes bas niveau, exécutées par l’analyseur dans le bloc de “declare”. La valeur de “N” est spécifiée avec la syntaxe “ticks=”N”” dans le bloc de directive “declare”.

Un événement qui intervient à chaque tick est spécifié avec la fonction register_tick_function(). Reportez-vous à l’exemple ci-dessous pour plus de détails. Notez que plus d’un événement peut intervenir par tick.

Exemple 16-31. Profiler une section de code PHP

<?php
// Un fonction qui enregistre l'heure à laquelle elle est appelée
function profile($dump = FALSE){
    static $profile;
    // Retourne les horaires stockés dans le profile, et l'efface
    if ($dump) {
        $temp = $profile;
        unset($profile);
        return $temp;
    }
    $profile[] = microtime ();
}
 
// Enregistre un gestionnaire de tick
register_tick_function("profile");
 
// Initialise la fonction avant le bloc de déclaration
profile();
 
// Exécute un bloc de code, et appele un tick toutes les deux secondes
declare (ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />";
    }
}
 
// Affiche les données de la variable $profile
print_r(profile(TRUE));
?>

Cet exemple profile le code PHP dans le bloc de déclaration, et enregistre l’heure de chaque commande bas niveau. Cette information peut être réutilisée pour débusquer les segments de code lents. Vous pouvez implémenter d’autres méthodes, mais les ticks sont plus rapides et plus efficaces.

Les ticks sont bien pratiques pour déboguer, implémenter un multi-tâches simple, des entrées sorties en tâche de fond, ou bien d’autres choses, avec PHP.

Voir aussi register_tick_function() et unregister_tick_function().

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright