2024 日本 PHP 研討會

EvStat 類別

(PECL ev >= 0.2.0)

簡介

EvStat 會監控檔案系統路徑的屬性變更。它會定期(或在作業系統發出變更訊號時)呼叫該路徑上的 stat(),並查看與上次相比是否有變更,如果有的話,就會呼叫回呼函式。

路徑不需要存在:從「路徑存在」變為「路徑不存在」是一種狀態變化,與其他狀態變化一樣。「路徑不存在」條件由 'nlink' 項為 0 表示(由 EvStat::attr() 方法返回)。

路徑不能以斜線結尾,也不能包含特殊組件,例如 '.'..。路徑應該是絕對路徑:如果是相對路徑且工作目錄發生變化,則行為未定義。

由於沒有可用的可攜式變更通知介面,可攜式實作只是定期在路徑上呼叫 stat() 來查看它是否發生了變化。對於這種情況,可以指定建議的輪詢間interval。如果指定輪詢間隔為 0.0(強烈建議),則將使用合適的、未指定的預設值(預計約為 5 秒,但這可能會動態變化)。libev 也會強制執行最小間隔,目前約為 0.1,但这通常是多餘的。

此監控器類型不適用於大量的 EvStat 監控器,因為即使使用作業系統支援的變更通知,這也可能會消耗大量資源。

類別概要

類別 EvStat 繼承自 EvWatcher {
/* 屬性 */
公開 $path;
公開 $interval;
/* 繼承的屬性 */
公開 $is_active;
公開 $data;
公開 $is_pending;
公開 $priority;
/* 方法 */
公開 __construct(
     字串 $path,
     浮點數 $interval,
     可呼叫 $callback,
     混合 $data = null,
     整數 $priority = 0
)
公開 attr(): 陣列
final 公開 靜態 createStopped(
     字串 $path,
     浮點數 $interval,
     可呼叫 $callback,
     混合 $data = null,
     整數 $priority = 0
):
公開 prev():
公開 set( 字串 $path , 浮點數 $interval ):
公開 stat(): 布林值
/* 繼承的方法 */
公開 EvWatcher::feed( 整數 $revents ):
公開 EvWatcher::invoke( 整數 $revents ):
公開 EvWatcher::setCallback( 可呼叫 $callback ):
}

屬性

interval

唯讀。關於預期偵測到變更速度的提示,通常應指定為 0.0 以讓 libev 選擇合適的值。

path

唯讀。要等待狀態變更的路徑。

目錄

新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top