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
Error— si l’itérateur est utilisé en dehors d’une coroutine.
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
- FileSystemWatcher — Vue d’ensemble du concept
- FileSystemWatcher::close — Arrêter la surveillance