X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FStubObject.php;h=fb9b3e455cb93ac8abf692eeccb7e0f6ad04bd6a;hb=1f9ca54b6f3eca77bdf1b4af686f42c5035275ca;hp=64df81b2c33203f949ddb067a3631bbf97684a9e;hpb=e8de5bb5f6d6b0da357d365521f6c87c4d652385;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/StubObject.php b/includes/StubObject.php index 64df81b2c3..fb9b3e455c 100644 --- a/includes/StubObject.php +++ b/includes/StubObject.php @@ -43,13 +43,13 @@ */ class StubObject { /** @var null|string */ - protected $mGlobal; + protected $global; /** @var null|string */ - protected $mClass; + protected $class; /** @var array */ - protected $mParams; + protected $params; /** * Constructor. @@ -59,9 +59,9 @@ class StubObject { * @param array $params Parameters to pass to constructor of the real object. */ function __construct( $global = null, $class = null, $params = array() ) { - $this->mGlobal = $global; - $this->mClass = $class; - $this->mParams = $params; + $this->global = $global; + $this->class = $class; + $this->params = $params; } /** @@ -83,9 +83,9 @@ class StubObject { * @param object $obj Object to check. * @return void */ - static function unstub( $obj ) { + static function unstub( &$obj ) { if ( $obj instanceof StubObject ) { - $obj->_unstub( 'unstub', 3 ); + $obj = $obj->_unstub( 'unstub', 3 ); } } @@ -102,7 +102,7 @@ class StubObject { */ function _call( $name, $args ) { $this->_unstub( $name, 5 ); - return call_user_func_array( array( $GLOBALS[$this->mGlobal], $name ), $args ); + return call_user_func_array( array( $GLOBALS[$this->global], $name ), $args ); } /** @@ -110,7 +110,7 @@ class StubObject { * @return object */ function _newObject() { - return MWFunction::newObj( $this->mClass, $this->mParams ); + return MWFunction::newObj( $this->class, $this->params ); } /** @@ -134,29 +134,31 @@ class StubObject { * @param string $name Name of the method called in this object. * @param int $level Level to go in the stack trace to get the function * who called this function. + * @return The unstubbed version of itself * @throws MWException */ function _unstub( $name = '_unstub', $level = 2 ) { static $recursionLevel = 0; - if ( !$GLOBALS[$this->mGlobal] instanceof StubObject ) { - return $GLOBALS[$this->mGlobal]; // already unstubbed. + if ( !$GLOBALS[$this->global] instanceof StubObject ) { + return $GLOBALS[$this->global]; // already unstubbed. } - if ( get_class( $GLOBALS[$this->mGlobal] ) != $this->mClass ) { - $fname = __METHOD__ . '-' . $this->mGlobal; + if ( get_class( $GLOBALS[$this->global] ) != $this->class ) { + $fname = __METHOD__ . '-' . $this->global; wfProfileIn( $fname ); $caller = wfGetCaller( $level ); if ( ++$recursionLevel > 2 ) { wfProfileOut( $fname ); throw new MWException( "Unstub loop detected on call of " - . "\${$this->mGlobal}->$name from $caller\n" ); + . "\${$this->global}->$name from $caller\n" ); } - wfDebug( "Unstubbing \${$this->mGlobal} on call of " - . "\${$this->mGlobal}::$name from $caller\n" ); - $GLOBALS[$this->mGlobal] = $this->_newObject(); + wfDebug( "Unstubbing \${$this->global} on call of " + . "\${$this->global}::$name from $caller\n" ); + $GLOBALS[$this->global] = $this->_newObject(); --$recursionLevel; wfProfileOut( $fname ); + return $GLOBALS[$this->global]; } } }