KomponentenFileSystemWatcher::getIterator

FileSystemWatcher::getIterator ​

(PHP 8.6+, True Async 1.0)

php
public FileSystemWatcher::getIterator(): Iterator

Gibt einen Iterator zur Verwendung mit foreach zurueck. Wird automatisch bei Verwendung von foreach ($watcher as $event) aufgerufen.

Der Iterator liefert Async\FileSystemEvent-Objekte. Wenn der Puffer leer ist, wird die Coroutine suspendiert, bis ein neues Ereignis eintrifft. Die Iteration endet, wenn der Watcher geschlossen ist und der Puffer erschoepft ist.

Parameter ​

Keine Parameter.

Rueckgabewert ​

Iterator --- ein Iterator, der Async\FileSystemEvent-Objekte liefert.

Fehler/Ausnahmen ​

  • Error --- wenn der Iterator ausserhalb einer Coroutine verwendet wird.

Beispiele ​

Beispiel #1 Standardverwendung mit foreach ​

php
<?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 "Ereignis: {$event->filename}";
        echo " renamed={$event->renamed}";
        echo " changed={$event->changed}\n";
    }

    echo "Iteration abgeschlossen\n";
});
?>

Beispiel #2 Unterbrechen mit break ​

php
<?php
use Async\FileSystemWatcher;

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

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

$watcher->close();
?>

Siehe auch ​