/** * @param AbstractJob $job * * @return $this */ protected function invokeCallbacks(AbstractJob $job) { $result = $job->getResult(); if ($result->isRedirect() || $result->isRetry()) { return $this; } if ($result->isError()) { $callbackJobs = $job->getCallbacksError(); } else { $callbackJobs = $job->getCallbacksDone(); if ($result->isSuccess()) { $callbackJobs = $callbackJobs + $job->getCallbacksSuccess(); } else { $callbackJobs = $callbackJobs + $job->getCallbacksError(); } } if (!is_array($callbackJobs) || count($callbackJobs) === 0) { return $this; } foreach ($callbackJobs as $index => $callbackJob) { /** @var $callbackJob AbstractJob */ $callbackJob($job); } return $this; }