public function instantiate()
{
if ($this->isInstantiated()) {
return $this->instance;
}
if ($this->factoryMethod) {
$this->instance = $this->instantiateFromCallback($this->factoryMethod);
} else {
$reflection = new \ReflectionClass($this->classname);
$this->instance = empty($this->arguments) ? $reflection->newInstance() : $reflection->newInstanceArgs($this->arguments);
}
$this->isInstantiated = true;
return $this->instance;
}
/** * @param string $method * @param array $arguments * * @return mixed */ public function during($method, array $arguments = array()) { if ($method === '__construct') { $this->subject->beAnInstanceOf($this->wrappedObject->getClassName(), $arguments); return $this->duringInstantiation(); } $object = $this->wrappedObject->instantiate(); return $this->runDuring($object, $method, $arguments); }