mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
146 lines
7.0 KiB
XML
146 lines
7.0 KiB
XML
<?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
|
||
-->
|