# La classe EvPeriodic

(PECL ev >= 0.2.0)

## Introduction

Les watchers périodiques sont des sortes de minuteurs, mais ils sont très polyvalents.

Contrairement à EvTimer, les watchers EvPeriodic ne sont pas basés sur un temps réel (ou un temps relatif, le temps physique qui passe), mais sur un temps d'horloge (temps absolu, calendaire, ou d'horloge). La différence est qu'un temps d'horloge peut être plus rapide ou plus lent qu'un temps réel, et les sauts dans le temps ne sont pas rares (c.-à-d. lors d'un ajustement).

Un watcher EvPeriodic peut être configuré pour être lancé après des points spécifiques dans le temps. Par exemple, si un watcher EvPeriodic est configuré pour se lancer "dans 10 secondes" (c.-à-d. EvLoop::now() + `10.0`, c.-à-d. un temps absolu, et non un délai), et que l'horloge système est ré-initialisée à janvier de l'année dernière, alors cela prendra une année et plus à lancer l'événement (contrairement à EvTimer qui sera lancé `10` secondes après son démarrage, sachant qu'il utilise un délai maximal d'attente relatif).

Comme pour les minuteurs, il est garanti que la fonction de rappel soit appelée uniquement lorsque le point dans le temps où il est supposé se lancer est passé. Si plusieurs minuteurs deviennent prêts en même temps pendant la même itération de boucle, alors ceux dont les valeurs de délai maximal d'attente sont les plus proches seront appelés avant ceux qui ont des valeurs de délai maximal d'attente plus éloignées (mais ceci n'est plus vrai lorsqu'une fonction de rappel appelle récursivement la méthode EvLoop::run()).

## Synopsis de la classe

class EvPeriodic extends EvWatcher {
/* Propriétés */
public $offset;
public $interval;
/* Propriétés héritées */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
public function __construct(
float `$offset` ,
string `$interval` ,
callable `$reschedule_cb` ,
callable `$callback` ,
mixed `$data` = `null` ,
int `$priority` = 0
)
public function again(): void
public function at(): float
final public static function createStopped(
float `$offset` ,
float `$interval` ,
callable `$reschedule_cb` ,
callable `$callback` ,
mixed `$data` = `null` ,
int `$priority` = 0
): EvPeriodic
public function set( float `$offset` , float `$interval` ): void
/* Méthodes héritées */
public function EvWatcher::clear(): int
public function EvWatcher::feed( int `$revents` ): void
public function EvWatcher::getLoop(): EvLoop
public function EvWatcher::invoke( int `$revents` ): void
public function EvWatcher::keepalive( bool `$value` = ?): bool
public function EvWatcher::setCallback( callable `$callback` ): void
public function EvWatcher::start(): void
public function EvWatcher::stop(): void
}

## Propriétés

offset
  Lors de la répétition, va contenir la valeur de la position, sinon, ce sera le point absolu dans le temps (la valeur de la position passée à la méthode EvPeriodic::set(), bien que libev peut modifier cette valeur pour une meilleure stabilité numérique).
interval
  La valeur de l'intervalle courant. Peut être modifié à tout moment, mais les modifications ne prennent effet que lorsque le minuteur périodique se lance, ou lorsque la méthode EvPeriodic::again() est appelée.

## Sommaire

- EvPeriodic::again — Arrête et re-démarre le watcher périodique
- EvPeriodic::at — Retourne le temps absolu auquel ce watcher sera appelé la prochaine fois
- EvPeriodic::__construct — Construit un objet watcher EvPeriodic
- EvPeriodic::createStopped — Crée un watcher EvPeriodic stoppé
- EvPeriodic::set — Configure le watcher

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open