我有一個看起來像這樣的抽象基類的一部分:如何實現執行抽象PHP方法的標誌?
abstract class Fragment_Cache {
static $in_callback = false;
abstract public function callback($name, $args);
}
我需要callback()
方法執行過程中翻轉$in_callback
到true
。這被用在代碼的其他部分,以防止嵌套緩存(所以我想緩存小部件和菜單,但不是窗口部件內的菜單)。
但是由於它是抽象方法,我不能依賴子類實現。
我也不能在方法調用周圍打開/關閉標誌,因爲它是由不同的庫傳遞和執行的,而不同的庫負責運行它的異步,而不是在頁面加載期間。
我該如何構建自己走出這個角落? :)
實際怪物,設置它的呼叫:
$output = tlc_transient('fragment-cache-' . $this->type . '-' . $name . $salt)
->updates_with(array($this, 'callback'), array($name, $args))
->expires_in($this->timeout)->get();
您能否提供一個如何在您的代碼中使用此方法的示例? –
@OneTrickPony添加了如何調用 – Rarst
的問題並且您可以使用'array($ this,'wrappingCallback')''來更改'array($ this,'callback')'嗎? –