XXXVI. ファイル改変監視関数(FAM)

導入

FAM はファイルやディレクトリを監視し、変更点を調査を行うアプリケーションに 通知します。FAM についての詳細な情報は http://oss.sgi.com/projects/fam/ で得られます。

PHP スクリプトは、この拡張モジュールにより提供される関数を用いて FAM に一連の ファイルを指定することができます。

FAM プロセスは、最初にアプリケーションから接続された時に開始され、 全ての接続がクローズされた時に終了します。

注意: この拡張モジュールは PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.1.0.

注意: この拡張モジュールは Windows 環境では利用できません。

要件

この拡張モジュールは、SGI が開発した FAM ライブラリの関数を使用しています。そのため、FAM ライブラリを ダウンロードしてインストールする必要があります。

インストール手順

PHP の FAM サポートを使用するには、--with-fam[=DIR] を指定して PHP をコンパイルする 必要があります。DIR は lib および include ディレクトリを含む ディレクトリの場所です。

実行時設定

設定ディレクティブは定義されていません。

リソース型

FAM モジュールでは二種類のリソース型を使用します。まず最初が FAM サービスとの接続を表すリソースで、これは fam_open() が返します。二番目はモニタリングリソースで、これは fam_monitor_XXX 関数が返します。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

表 1. FAM イベント定数

定数説明
FAMChanged (integer) ファイルあるいはディレクトリの、fstat(1) で取得できる値のうちの 何かが変更されました。
FAMDeleted (integer) ファイルあるいはディレクトリが削除あるいはリネームされました。
FAMStartExecuting (integer) 実行可能ファイルが実行されました。
FAMStopExecuting (integer) 実行可能ファイルの実行が終了しました。
FAMCreated (integer) ディレクトリ内にファイルが作成されました。
FAMMoved (integer) このイベントは決して発生しません。
FAMAcknowledge (integer) fam_cancel_monitor() に対する応答イベントです。
FAMExists (integer) ファイルやディレクトリの監視を要求するイベントです。 ディレクトリが監視されている場合、ディレクトリおよびその中に 含まれるすべてのファイルについてのイベントが発生します。
FAMEndExist (integer) 最後の FAMEExists イベントの後に発生します。
目次
fam_cancel_monitor -- 監視を終了する
fam_close -- FAM 接続を閉じる
fam_monitor_collection -- 指定したディレクトリにあるファイルの変更を監視する
fam_monitor_directory -- ディレクトリの変更を監視する
fam_monitor_file -- 通常のファイルの変更を監視する
fam_next_event -- 次の待機中の FAM イベントを返す
fam_open -- FAM デーモンへの接続をオープンする
fam_pending -- 待機中の FAM イベントの有無を調べる
fam_resume_monitor -- 中断された監視処理を再開する
fam_suspend_monitor -- 監視を一時的に中断する