FileSystemWatcher::getIterator
(PHP 8.6+, True Async 1.0)
public FileSystemWatcher::getIterator(): Iterator
Повертає ітератор для використання з foreach. Викликається автоматично при використанні foreach ($watcher as $event).
Ітератор генерує об’єкти Async\FileSystemEvent. Коли буфер порожній, корутина призупиняється до надходження нової події. Ітерація завершується, коли спостерігач закритий і буфер вичерпано.
Параметри
Без параметрів.
Значення, що повертається
Iterator — ітератор, що генерує об’єкти Async\FileSystemEvent.
Помилки/Винятки
Error— якщо ітератор використовується поза корутиною.
Приклади
Приклад #1 Стандартне використання з 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 "Event: {$event->filename}";
echo " renamed={$event->renamed}";
echo " changed={$event->changed}\n";
}
echo "Iteration completed\n";
});
?>
Приклад #2 Переривання за допомогою break
<?php
use Async\FileSystemWatcher;
$watcher = new FileSystemWatcher('/tmp/dir');
foreach ($watcher as $event) {
if ($event->filename === 'stop.flag') {
break;
}
processEvent($event);
}
$watcher->close();
?>
Дивіться також
- FileSystemWatcher — Огляд концепції
- FileSystemWatcher::close — Зупинити спостереження