FileSystemWatcher::getIterator

(PHP 8.6+, True Async 1.0)

public FileSystemWatcher::getIterator(): Iterator

Retourne un itérateur pour utilisation avec foreach. Appelé automatiquement lors de l’utilisation de foreach ($watcher as $event).

L’itérateur produit des objets Async\FileSystemEvent. Lorsque le tampon est vide, la coroutine est suspendue jusqu’à l’arrivée d’un nouvel événement. L’itération se termine lorsque l’observateur est fermé et que le tampon est épuisé.

Paramètres

Aucun paramètre.

Valeur de retour

Iterator — un itérateur produisant des objets Async\FileSystemEvent.

Erreurs/Exceptions

Exemples

Exemple #1 Utilisation standard avec foreach

<?php
use Async\FileSystemWatcher;
use function Async\spawn;
use function Async\delay;

spawn(function() {
    $watcher = new FileSystemWatcher('/tmp/dir');

    spawn(function() use ($watcher) {
        delay(5000);
        $watcher->close();
    });

    foreach ($watcher as $event) {
        echo "Événement : {$event->filename}";
        echo " renamed={$event->renamed}";
        echo " changed={$event->changed}\n";
    }

    echo "Itération terminée\n";
});
?>

Exemple #2 Interruption avec break

<?php
use Async\FileSystemWatcher;

$watcher = new FileSystemWatcher('/tmp/dir');

foreach ($watcher as $event) {
    if ($event->filename === 'stop.flag') {
        break;
    }
    processEvent($event);
}

$watcher->close();
?>

Voir aussi