FileSystemWatcher::getIterator
(PHP 8.6+, True Async 1.0)
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
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
use Async\FileSystemWatcher;
$watcher = new FileSystemWatcher('/tmp/dir');
foreach ($watcher as $event) {
if ($event->filename === 'stop.flag') {
break;
}
processEvent($event);
}
$watcher->close();
?>
Siehe auch
- FileSystemWatcher — Konzeptuebersicht
- FileSystemWatcher::close — Ueberwachung stoppen