instance($name); } /** * Create an instance of the process concurrency driver. * * @param array $config * @return \Illuminate\Concurrency\ProcessDriver */ public function createProcessDriver(array $config) { return new ProcessDriver($this->app->make(ProcessFactory::class)); } /** * Create an instance of the fork concurrency driver. * * @param array $config * @return \Illuminate\Concurrency\ForkDriver * * @throws \RuntimeException */ public function createForkDriver(array $config) { if (! $this->app->runningInConsole()) { throw new RuntimeException('Due to PHP limitations, the fork driver may not be used within web requests.'); } if (! class_exists(Fork::class)) { throw new RuntimeException('Please install the "spatie/fork" Composer package in order to utilize the "fork" driver.'); } return new ForkDriver; } /** * Create an instance of the sync concurrency driver. * * @param array $config * @return \Illuminate\Concurrency\SyncDriver */ public function createSyncDriver(array $config) { return new SyncDriver; } /** * Get the default instance name. * * @return string */ public function getDefaultInstance() { return $this->app['config']['concurrency.default'] ?? $this->app['config']['concurrency.driver'] ?? 'process'; } /** * Set the default instance name. * * @param string $name * @return void */ public function setDefaultInstance($name) { $this->app['config']['concurrency.default'] = $name; $this->app['config']['concurrency.driver'] = $name; } /** * Get the instance specific configuration. * * @param string $name * @return array */ public function getInstanceConfig($name) { return $this->app['config']->get( 'concurrency.driver.'.$name, ['driver' => $name], ); } }