我有部分抽象基类看起来像这样:
abstract class Fragment_Cache {
static $in_callback = false;
abstract public function callback( $name, $args );
}
我需要在方法执行期间翻转$in_callback
到。这用于代码的其他部分以防止缓存嵌套(所以我想缓存小部件和菜单,而不是小部件内的菜单)。true
callback()
但是,由于它是抽象方法,因此我不能依赖子类实现。
我也不能在方法调用周围打开/关闭标志,因为它是由不同的库传递和执行的,这些库负责异步运行它而不是在页面加载期间运行它。
我怎样才能在这个角落里建立自己?:)
建立它的召唤的实际怪物:
$output = tlc_transient( 'fragment-cache-' . $this->type . '-' . $name . $salt )
->updates_with( array( $this, 'callback' ), array( $name, $args ) )
->expires_in( $this->timeout )->get();