InvokeQueuedClosure.php 876 B

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