Skip to content

Commit

Permalink
PHPORM-222 Register the BusServiceProvider when BatchRepository i…
Browse files Browse the repository at this point in the history
…s built (#3071)
  • Loading branch information
GromNaN authored Jul 25, 2024
1 parent 7e809df commit 895dcc7
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/MongoDBBusServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
use Illuminate\Container\Container;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Support\ServiceProvider;
use InvalidArgumentException;
use MongoDB\Laravel\Bus\MongoBatchRepository;

use function sprintf;

class MongoDBBusServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
Expand All @@ -18,14 +21,21 @@ class MongoDBBusServiceProvider extends ServiceProvider implements DeferrablePro
public function register()
{
$this->app->singleton(MongoBatchRepository::class, function (Container $app) {
$connection = $app->make('db')->connection($app->config->get('queue.batching.database'));

if (! $connection instanceof Connection) {
throw new InvalidArgumentException(sprintf('The "mongodb" batch driver requires a MongoDB connection. The "%s" connection uses the "%s" driver.', $connection->getName(), $connection->getDriverName()));
}

return new MongoBatchRepository(
$app->make(BatchFactory::class),
$app->make('db')->connection($app->config->get('queue.batching.database')),
$connection,
$app->config->get('queue.batching.collection', 'job_batches'),
);
});

/** @see BusServiceProvider::registerBatchServices() */
/** The {@see BatchRepository} service is registered in {@see BusServiceProvider} */
$this->app->register(BusServiceProvider::class);
$this->app->extend(BatchRepository::class, function (BatchRepository $repository, Container $app) {
$driver = $app->config->get('queue.batching.driver');

Expand Down

0 comments on commit 895dcc7

Please sign in to comment.