Illuminate\Bus\Dispatcher::dispatchNow PHP Method

dispatchNow() public method

Dispatch a command to its appropriate handler in the current process.
public dispatchNow ( mixed $command, Closure $afterResolving = null ) : mixed
$command mixed
$afterResolving Closure
return mixed
    public function dispatchNow($command, Closure $afterResolving = null)
    {
        return $this->pipeline->send($command)->through($this->pipes)->then(function ($command) use($afterResolving) {
            if ($command instanceof SelfHandling) {
                return $this->container->call([$command, 'handle']);
            }
            $handler = $this->resolveHandler($command);
            if ($afterResolving) {
                call_user_func($afterResolving, $handler);
            }
            return call_user_func([$handler, $this->getHandlerMethod($command)], $command);
        });
    }

Usage Example

Example #1
0
 /**
  * @param Dispatcher $bus
  * @throws \Exception
  */
 public function handle(Dispatcher $bus)
 {
     try {
         if ($this->release->isCancelled()) {
             return;
         }
         $this->release->update(['status' => Release::PREPARING]);
         $this->release->logger()->comment("Preparing release...");
         $this->prepareReleaseDir();
         $this->createArchive();
         $this->extractArchive();
         $this->writePlaybooks();
         if ($this->release->isCancelled()) {
             return;
         }
         if ($this->sync) {
             $bus->dispatchNow(new PlaybookJob($this->release));
             $bus->dispatchNow(new CleanupReleasesJob($this->release->repo));
         } else {
             $bus->dispatch(new PlaybookJob($this->release));
             $bus->dispatch(new CleanupReleasesJob($this->release->repo));
         }
     } catch (\Exception $e) {
         $this->release->update(['status' => Release::ERROR, 'raw_logs' => $e->getMessage()]);
         $this->release->logger()->push();
         throw $e;
     }
 }
All Usage Examples Of Illuminate\Bus\Dispatcher::dispatchNow