FileSystemWatcher::getIterator

(PHP 8.6+, True Async 1.0)

public FileSystemWatcher::getIterator(): Iterator

Возвращает итератор для использования в foreach. Вызывается автоматически при foreach ($watcher as $event).

Итератор выдаёт объекты Async\FileSystemEvent. Когда буфер пуст — корутина приостанавливается до поступления нового события. Итерация завершается, когда наблюдатель закрыт и буфер опустошён.

Параметры

Нет параметров.

Возвращаемое значение

Iterator — итератор, выдающий объекты Async\FileSystemEvent.

Ошибки/Исключения

Примеры

Пример #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->filename}";
        echo " renamed={$event->renamed}";
        echo " changed={$event->changed}\n";
    }

    echo "Итерация завершена\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();
?>

См. также