PHP 8.6.0 Beta 1 is available for testing

Класс EvStat

(PECL ev >= 0.2.0)

Введение

Класс EvStat отслеживает путь файловой системы на предмет изменений атрибутов. Класс вызывает для этого пути метод stat() через регулярные интервалы времени, или когда операционная система сигнализирует об изменении, и смотрит, изменился ли путь по сравнению с прошлым разом. Класс вызывает callback-функцию, если объект наблюдения изменился.

Путь не обязан существовать: изменение состояния с «путь существует» на «путь не существует» — это изменение состояния, как и любое другое. На условие «путь не существует» указывает значение 0 элемента с ключом 'nlink' в массиве, который возвращает метод EvStat::attr() .

Путь не должен оканчиваться слешем или содержать специальные компоненты наподобие '.' или ... Путь должен быть абсолютным. Если задать относительный путь и сменить рабочий каталог, то поведение будет неопределённым.

Поскольку нет переносимого интерфейса оповещения об изменениях, переносимая реализация просто регулярно вызывает метод stat() для пути и смотрит, не изменился объект наблюдения. Поэтому рекомендуют задавать интервал опроса. Если интервал опроса задали равным рекомендуемому значению 0.0, то метод будет использовать подходящее неопределённое значение по умолчанию, которое равно примерно 5 секундам и изменяется динамически. Модуль libev также наложит минимальный интервал, значение которого примерно равно 0.1, но обычно это избыточно.

Этот тип наблюдателя не рассчитан на большое количество EvStat-наблюдателей, поскольку даже при работе с уведомлениями об изменениях, которые поддерживает ОС, это потребует дополнительных ресурсов.

Обзор класса

class EvStat extends EvWatcher {
/* Свойства */
public $path ;
public $interval ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public function __construct (
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public function attr (): array
final public static function createStopped (
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void
public function prev (): void
public function set ( string $path , float $interval ): void
public function stat (): bool
/* Наследуемые методы */
public function EvWatcher::clear (): int
public function EvWatcher::feed ( int $revents ): void
public function EvWatcher::getLoop (): EvLoop
public function EvWatcher::invoke ( int $revents ): void
public function EvWatcher::keepalive ( bool $value = ?): bool
public function EvWatcher::setCallback ( callable $callback ): void
public function EvWatcher::start (): void
public function EvWatcher::stop (): void
}

Свойства

interval
Только чтение. Подсказывает, как часто метод будет обнаруживать изменения, и обычно ровно 0.0, что разрешает модулю libev самому определять интервал.
path
Только чтение. Путь, по которому метод отслеживает изменения.

Содержание

  • EvStat::attr — Возвращает значения, недавно обнаруженные Ev
  • EvStat::__construct — Создаёт объект наблюдателя EvStat
  • EvStat::createStopped — Создаёт остановленный объект наблюдателя EvStat
  • EvStat::prev — Возвращает предыдущий набор значений, которые возвращает метод EvStat::attr
  • EvStat::set — Настраивает наблюдателя
  • EvStat::stat — Инициирует вызов статистики

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /