MediaWiki  REL1_19
StubObject Class Reference

Class to implement stub globals, which are globals that delay loading the their associated module code by deferring initialisation until the first method call. More...

Inheritance diagram for StubObject:

List of all members.

Public Member Functions

 __call ($name, $args)
 Function called by PHP if no function with that name exists in this object.
 __construct ($global=null, $class=null, $params=array())
 Constructor.
 _call ($name, $args)
 Function called if any function exists with that name in this object.
 _newObject ()
 Create a new object to replace this stub object.
 _unstub ($name= '_unstub', $level=2)
 This function creates a new object of the real class and replace it in the global variable.

Static Public Member Functions

static isRealObject ($obj)
 Returns a bool value whetever $obj is a stub object.

Public Attributes

 $mClass
 $mGlobal
 $mParams

Detailed Description

Class to implement stub globals, which are globals that delay loading the their associated module code by deferring initialisation until the first method call.

Note on unstub loops:

Unstub loops (infinite recursion) sometimes occur when a constructor calls another function, and the other function calls some method of the stub. The best way to avoid this is to make constructors as lightweight as possible, deferring any initialisation which depends on other modules. As a last resort, you can use StubObject::isRealObject() to break the loop, but as a general rule, the stub object mechanism should be transparent, and code which refers to it should be kept to a minimum.

Definition at line 18 of file StubObject.php.


Constructor & Destructor Documentation

StubObject::__construct ( global = null,
class = null,
params = array() 
)

Constructor.

Parameters:
$globalString: name of the global variable.
$classString: name of the class of the real object.
$paramsArray: parameters to pass to contructor of the real object.

Definition at line 29 of file StubObject.php.


Member Function Documentation

StubObject::__call ( name,
args 
)

Function called by PHP if no function with that name exists in this object.

Parameters:
$nameString: name of the function called
$argsArray: arguments

Reimplemented in StubUserLang, and StubContLang.

Definition at line 76 of file StubObject.php.

References _call().

Here is the call graph for this function:

StubObject::_call ( name,
args 
)

Function called if any function exists with that name in this object.

It is used to unstub the object. Only used internally, PHP will call self::__call() function and that function will call this function. This function will also call the function with the same name in the real object.

Parameters:
$nameString: name of the function called
$argsArray: arguments

Definition at line 56 of file StubObject.php.

References _unstub().

Referenced by __call(), StubContLang\__call(), and StubUserLang\__call().

Here is the call graph for this function:

Here is the caller graph for this function:

Create a new object to replace this stub object.

Returns:
object

Reimplemented in StubUserLang, and StubContLang.

Definition at line 65 of file StubObject.php.

References MWFunction\newObj().

Referenced by _unstub().

Here is the call graph for this function:

Here is the caller graph for this function:

StubObject::_unstub ( name = '_unstub',
level = 2 
)

This function creates a new object of the real class and replace it in the global variable.

This is public, for the convenience of external callers wishing to access properties, e.g. eval.php

Parameters:
$nameString: name of the method called in this object.
$levelInteger: level to go in the stact trace to get the function who called this function.

Definition at line 90 of file StubObject.php.

References $fname, _newObject(), wfDebug(), wfGetCaller(), wfProfileIn(), and wfProfileOut().

Referenced by _call().

Here is the call graph for this function:

Here is the caller graph for this function:

static StubObject::isRealObject ( obj) [static]

Returns a bool value whetever $obj is a stub object.

Can be used to break a infinite loop when unstubbing an object.

Parameters:
$objObject to check.
Returns:
Boolean: true if $obj is not an instance of StubObject class.

Definition at line 42 of file StubObject.php.

Referenced by ParserOptions\__construct().

Here is the caller graph for this function:


Member Data Documentation

StubObject::$mClass

Definition at line 19 of file StubObject.php.

StubObject::$mGlobal

Definition at line 19 of file StubObject.php.

StubObject::$mParams

Definition at line 19 of file StubObject.php.


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