public final function proceed() { if (isset($this->advices[$this->current])) { /** @var $currentInterceptor Interceptor */ $currentInterceptor = $this->advices[$this->current]; $this->current++; return $currentInterceptor->invoke($this); } if (!$this->constructorArguments) { $this->instance = $this->class->newInstance(); } else { $this->instance = $this->class->newInstanceArgs($this->arguments); } return $this->instance; }