MediaWiki REL1_33
MemoizedCallable Class Reference

APC-backed and APCu-backed function memoization. More...

Inheritance diagram for MemoizedCallable:
Collaboration diagram for MemoizedCallable:

Public Member Functions

 __construct ( $callable, $ttl=3600)
 
 invoke ()
 Invoke the memoized function or method.
 
 invokeArgs (array $args=[])
 Invoke the memoized function or method.
 

Static Public Member Functions

static call ( $callable, array $args=[], $ttl=3600)
 Shortcut method for creating a MemoizedCallable and invoking it with the specified arguments.
 

Protected Member Functions

 fetchResult ( $key, &$success)
 Fetch the result of a previous invocation from APC or APCu.
 
 storeResult ( $key, $result)
 Store the result of an invocation in APC or APCu.
 

Private Attributes

callable $callable
 
string $callableName
 Unique name of callable; used for cache keys.
 

Detailed Description

APC-backed and APCu-backed function memoization.

This class provides memoization for pure functions. A function is pure if its result value depends on nothing other than its input parameters and if invoking it does not cause any side-effects.

The first invocation of the memoized callable with a particular set of arguments will be delegated to the underlying callable. Repeat invocations with the same input parameters will be served from APC or APCu.

Example:
$memoizedStrrev = new MemoizedCallable( 'range' );
$memoizedStrrev->invoke( 5, 8 ); // result: array( 5, 6, 7, 8 )
$memoizedStrrev->invokeArgs( array( 5, 8 ) ); // same
MemoizedCallable::call( 'range', array( 5, 8 ) ); // same
APC-backed and APCu-backed function memoization.
static call( $callable, array $args=[], $ttl=3600)
Shortcut method for creating a MemoizedCallable and invoking it with the specified arguments.
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
Since
1.27

Definition at line 43 of file MemoizedCallable.php.

Constructor & Destructor Documentation

◆ __construct()

MemoizedCallable::__construct (   $callable,
  $ttl = 3600 
)
Exceptions
InvalidArgumentExceptionif $callable is not a callable.
Parameters
callable$callableFunction or method to memoize.
int$ttlTTL in seconds. Defaults to 3600 (1hr). Capped at 86400 (24h).

Definition at line 56 of file MemoizedCallable.php.

References $callable.

Member Function Documentation

◆ call()

static MemoizedCallable::call (   $callable,
array  $args = [],
  $ttl = 3600 
)
static

Shortcut method for creating a MemoizedCallable and invoking it with the specified arguments.

Parameters
callable$callable
array$args
int$ttl
Returns
mixed

Definition at line 154 of file MemoizedCallable.php.

References $args, and $callable.

Referenced by ResourceLoaderWikiModule\getStyles(), and MemoizedCallableTest\testShortcutMethod().

◆ fetchResult()

MemoizedCallable::fetchResult (   $key,
$success 
)
protected

Fetch the result of a previous invocation from APC or APCu.

Parameters
string$key
bool&$success
Returns
bool

Reimplemented in ArrayBackedMemoizedCallable.

Definition at line 80 of file MemoizedCallable.php.

References $success.

Referenced by invokeArgs().

◆ invoke()

MemoizedCallable::invoke ( )

Invoke the memoized function or method.

Like MemoizedCallable::invokeArgs(), but variadic.

Parameters
mixed$params,...Parameters for memoized function or method.
Returns
mixed The memoized callable's return value.

Definition at line 141 of file MemoizedCallable.php.

References invokeArgs().

◆ invokeArgs()

MemoizedCallable::invokeArgs ( array  $args = [])

Invoke the memoized function or method.

Exceptions
InvalidArgumentExceptionIf parameters list contains non-scalar items.
Parameters
array$argsParameters for memoized function or method.
Returns
mixed The memoized callable's return value.

Definition at line 111 of file MemoizedCallable.php.

References $args, $callable, $success, as, fetchResult(), serialize(), and storeResult().

Referenced by invoke(), and MemoizedCallableTest\testMemoizedClosure().

◆ storeResult()

MemoizedCallable::storeResult (   $key,
  $result 
)
protected

Store the result of an invocation in APC or APCu.

Parameters
string$key
mixed$result

Reimplemented in ArrayBackedMemoizedCallable.

Definition at line 96 of file MemoizedCallable.php.

Referenced by invokeArgs().

Member Data Documentation

◆ $callable

callable MemoizedCallable::$callable
private

Definition at line 46 of file MemoizedCallable.php.

Referenced by __construct(), call(), and invokeArgs().

◆ $callableName

string MemoizedCallable::$callableName
private

Unique name of callable; used for cache keys.

Definition at line 49 of file MemoizedCallable.php.


The documentation for this class was generated from the following file: