1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/ev/evstat.xml
2026-01-18 22:20:57 +00:00

146 lines
7.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.evstat" role="class">
<title>Класс EvStat</title>
<titleabbrev>EvStat</titleabbrev>
<partintro>
<!-- {{{ EvStat intro -->
<section xml:id="evstat.intro">
&reftitle.intro;
<simpara>
Класс <classname>EvStat</classname> отслеживает путь файловой системы
на предмет изменений атрибутов. Класс вызывает для этого пути
метод <emphasis>stat()</emphasis> через регулярные интервалы времени,
или когда операционная система сигнализирует об изменении,
и смотрит, изменился ли путь по сравнению с прошлым разом. Класс вызывает
callback-функцию, если объект наблюдения изменился.
</simpara>
<simpara>
Путь не обязан существовать: изменение состояния с «путь существует»
на «путь не существует» — это изменение состояния, как и любое другое.
На условие «путь не существует» указывает значение 0
элемента с ключом <literal>'nlink'</literal> в массиве, который возвращает
метод <methodname>EvStat::attr</methodname>.
</simpara>
<simpara>
Путь не должен оканчиваться слешем или содержать специальные
компоненты наподобие <literal>'.'</literal> или <literal>..</literal>.
Путь должен быть абсолютным. Если задать относительный путь и сменить
рабочий каталог, то поведение будет неопределённым.
</simpara>
<simpara>
Поскольку нет переносимого интерфейса оповещения об изменениях,
переносимая реализация просто регулярно вызывает метод
<emphasis>stat()</emphasis> для пути и смотрит, не изменился объект наблюдения.
Поэтому рекомендуют задавать интервал опроса. Если интервал
опроса задали равным рекомендуемому значению <literal>0.0</literal>,
то метод будет использовать подходящее неопределённое значение по умолчанию,
которое равно примерно 5 секундам и изменяется динамически.
Модуль <emphasis>libev</emphasis> также наложит минимальный интервал,
значение которого примерно равно <literal>0.1</literal>,
но обычно это избыточно.
</simpara>
<simpara>
Этот тип наблюдателя не рассчитан на большое количество
<classname>EvStat</classname>-наблюдателей, поскольку даже
при работе с уведомлениями об изменениях,
которые поддерживает ОС, это потребует дополнительных ресурсов.
</simpara>
</section>
<!-- }}} -->
<section xml:id="evstat.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvStat</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvStat</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evstat.props.path">path</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<varname linkend="evstat.props.interval">interval</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('evwatcher.synopsis')/descendant::db:fieldsynopsis)"/>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evstat')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evstat')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evwatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"/>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ EvStat properties -->
<section xml:id="evstat.props">
&reftitle.properties;
<variablelist>
<varlistentry xml:id="evstat.props.interval">
<term>
<varname>interval</varname>
</term>
<listitem>
<simpara>
<emphasis>Только чтение</emphasis>.
Подсказывает, как часто метод будет обнаруживать изменения, и обычно ровно
<literal>0.0</literal>, что разрешает модулю <emphasis>libev</emphasis>
самому определять интервал.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="evstat.props.path">
<term>
<varname>path</varname>
</term>
<listitem>
<simpara>
<emphasis>Только чтение</emphasis>.
Путь, по которому метод отслеживает изменения.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.ev.entities.evstat;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->