array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'ev.watchers.php', 1 => 'ウォッチャー', ), 'up' => array ( 0 => 'book.ev.php', 1 => 'Ev', ), 'prev' => array ( 0 => 'ev.examples.php', 1 => '例', ), 'next' => array ( 0 => 'ev.watcher-callbacks.php', 1 => 'ウォッチャーのコールバック', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ev/watchers.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
ウォッチャーは、何らかのイベントに関する興味を記録するオブジェクトです。
たとえば次のコードは、
STDIN
が読み込み可能になるまで待ちます。
<?php
// STDIN が読み込み可能になるまで待ちます
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
echo "STDIN is readable\n";
});
Ev::run(Ev::RUN_ONCE);
?>
すべてのウォッチャーのコンストラクタが、自動的にウォッチャーを開始します。
createStopped
メソッドを使う
(EvIo::createStopped() など)
と、停止状態のウォッチャーを作れます。
ウォッチャーオブジェクトを破棄するときには、自動的にウォッチャーが停止することに注意しましょう。 したがって、コンストラクタやファクトリーメソッドが返すオブジェクトはずっと維持する必要があります。
また、ウォッチャーのプロパティ (set や priority etc.) を変更するすべてのメソッドは、自動的にウォッチャーを停止して アクティブになったら立ち上げなおすことにも注意しましょう。 つまり、未処理のイベントは失われてしまいます。
ウォッチャーのコールバック も参照ください。