71 lines
2.0 KiB
PHP
71 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Bus;
|
|
|
|
use Illuminate\Contracts\Bus\Dispatcher as DispatcherContract;
|
|
use Illuminate\Contracts\Bus\QueueingDispatcher as QueueingDispatcherContract;
|
|
use Illuminate\Contracts\Queue\Factory as QueueFactoryContract;
|
|
use Illuminate\Contracts\Support\DeferrableProvider;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class BusServiceProvider extends ServiceProvider implements DeferrableProvider
|
|
{
|
|
/**
|
|
* Register the service provider.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register()
|
|
{
|
|
$this->app->singleton(Dispatcher::class, function ($app) {
|
|
return new Dispatcher($app, function ($connection = null) use ($app) {
|
|
return $app[QueueFactoryContract::class]->connection($connection);
|
|
});
|
|
});
|
|
|
|
$this->registerBatchServices();
|
|
|
|
$this->app->alias(
|
|
Dispatcher::class, DispatcherContract::class
|
|
);
|
|
|
|
$this->app->alias(
|
|
Dispatcher::class, QueueingDispatcherContract::class
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Register the batch handling services.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function registerBatchServices()
|
|
{
|
|
$this->app->singleton(BatchRepository::class, DatabaseBatchRepository::class);
|
|
|
|
$this->app->singleton(DatabaseBatchRepository::class, function ($app) {
|
|
return new DatabaseBatchRepository(
|
|
$app->make(BatchFactory::class),
|
|
$app->make('db')->connection($app->config->get('queue.batching.database')),
|
|
$app->config->get('queue.batching.table', 'job_batches')
|
|
);
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Get the services provided by the provider.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function provides()
|
|
{
|
|
return [
|
|
Dispatcher::class,
|
|
DispatcherContract::class,
|
|
QueueingDispatcherContract::class,
|
|
BatchRepository::class,
|
|
DatabaseBatchRepository::class,
|
|
];
|
|
}
|
|
}
|