(PECL ev >= 0.2.0)
EvTimer::__construct — Construit un objet EvTimer watcher
$after
   ,$repeat
   ,$callback
   ,$data
     = null
   ,$priority
     = 0
   Construit un objet EvTimer watcher.
after
    
      Configure le time pour lancer le trigger après
      after secondes.
     
repeat
    
      Si ce paramètre vaut 0.0, alors le watcher
      sera automatiquement stoppé lors de le délai maximal d'attente sera
      atteint. Si ce paramètre est positif, alors le timer va automatiquement
      lancer le trigger à chaque seconde suivante, et ce, tant qu'il ne sera
      pas stoppé manuellement.
     
callback
    Voir les fonctions de rappel Watcher.
data
    Données personnalisées associées avec le watcher.
priority
    Exemple #1 timers simples
<?php
// Crée et démarre un timer lancé après 2 secondes
$w1 = new EvTimer(2, 0, function () {
    echo "2 secondes passées\n";
});
// Crée et démarre un timer lancé après 2 secondes, et le répère toutes les secondes
// tant que nous ne le stoppons pas manuellement
$w2 = new EvTimer(2, 1, function ($w) {
    echo "est appelé chaque seconde, est démarré après 2 secondes\n";
    echo "itération = ", Ev::iteration(), PHP_EOL;
    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});
// Crée un time stoppé. Il sera inactif tant que nous ne le démarrons pas nous même
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Fonction de rappel du timer crée stoppé\n";
    // Stop le watcher après 2 itérations
    Ev::iteration() >= 2 and $w->stop();
});
// Boucle tant que Ev::stop() est appelé ou tant que tous les watchers ne s'arrêtent
Ev::run();
// Démarre et verrouille s'il est en fonctionnement
$w_stopped->start();
echo "Exécution d'une seule itération\n";
Ev::run(Ev::RUN_ONCE);
echo "Redémarre le second watcher et tente de gérer les mêmes événements, mais ne bloque pas\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);
$w = new EvTimer(10, 0, function() {});
echo "Exécution d'une boucle bloquante\n";
Ev::run();
echo "FIN\n";
?>
Résultat de l'exemple ci-dessus est similaire à :
2 secondes passées est appelé chaque seconde, est démarré après 2 secondes itération = 1 est appelé chaque seconde, est démarré après 2 secondes itération = 2 est appelé chaque seconde, est démarré après 2 secondes itération = 3 est appelé chaque seconde, est démarré après 2 secondes itération = 4 est appelé chaque seconde, est démarré après 2 secondes itération = 5 Exécution d'une seule itération Fonction de rappel du timer crée stoppé Redémarre le second watcher et tente de gérer les mêmes événements, mais ne bloque pas Exécution d'une boucle bloquante est appelé chaque seconde, est démarré après 2 secondes itération = 8 est appelé chaque seconde, est démarré après 2 secondes itération = 9 est appelé chaque seconde, est démarré après 2 secondes itération = 10 FIN