(PECL ev >= 0.2.0)
Класс EvStat отслеживает путь файловой системы на предмет изменений атрибутов. Класс вызывает для этого пути метод stat() через регулярные интервалы времени, или когда операционная система сигнализирует об изменении, и смотрит, изменился ли путь по сравнению с прошлым разом. Класс вызывает callback-функцию, если объект наблюдения изменился.
Путь не обязан существовать: изменение состояния с «путь существует» на «путь не существует» — это изменение состояния, как и любое другое. На условие «путь не существует» указывает значение 0 элемента с ключом 'nlink'
в массиве, который возвращает метод EvStat::attr().
Путь не должен оканчиваться слешем или содержать специальные компоненты наподобие '.'
или ..
. Путь должен быть абсолютным. Если задать относительный путь и сменить рабочий каталог, то поведение будет неопределённым.
Поскольку нет переносимого интерфейса оповещения об изменениях, переносимая реализация просто регулярно вызывает метод stat() для пути и смотрит, не изменился объект наблюдения. Поэтому рекомендуют задавать интервал опроса. Если интервал опроса задали равным рекомендуемому значению 0.0
, то метод будет использовать подходящее неопределённое значение по умолчанию, которое равно примерно 5 секундам и изменяется динамически. Модуль libev также наложит минимальный интервал, значение которого примерно равно 0.1
, но обычно это избыточно.
Этот тип наблюдателя не рассчитан на большое количество EvStat-наблюдателей, поскольку даже при работе с уведомлениями об изменениях, которые поддерживает ОС, это потребует дополнительных ресурсов.
$path
,$interval
,$callback
,$data
= null
,$priority
= 0Только чтение. Подсказывает, как часто метод будет обнаруживать изменения, и обычно ровно 0.0
, что разрешает модулю libev самому определять интервал.
Только чтение. Путь, по которому метод отслеживает изменения.