InvokeQueuedClosure.php 831 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace Illuminate\Events;
  3. class InvokeQueuedClosure
  4. {
  5. /**
  6. * Handle the event.
  7. *
  8. * @param \Laravel\SerializableClosure\SerializableClosure $closure
  9. * @param array $arguments
  10. * @return void
  11. */
  12. public function handle($closure, array $arguments)
  13. {
  14. call_user_func($closure->getClosure(), ...$arguments);
  15. }
  16. /**
  17. * Handle a job failure.
  18. *
  19. * @param \Laravel\SerializableClosure\SerializableClosure $closure
  20. * @param array $arguments
  21. * @param array $catchCallbacks
  22. * @param \Throwable $exception
  23. * @return void
  24. */
  25. public function failed($closure, array $arguments, array $catchCallbacks, $exception)
  26. {
  27. $arguments[] = $exception;
  28. collect($catchCallbacks)->each->__invoke(...$arguments);
  29. }
  30. }