abellion / xenus-laravel by abellion

Xenus integration for the Laravel and Lumen frameworks
Package Data
Maintainer Username: abellion
Package Create Date: 2020-07-31
Package Last Update: 2022-07-04
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2022-08-03 03:28:09
Package Statistics
Total Downloads: 391
Monthly Downloads: 165
Daily Downloads: 10
Total Stars: 10
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

This package integrates Xenus to the Laravel and Lumen frameworks (from version 5.8 up to the latest 7.0) :

  • Out of the box failed jobs and migrations integration
  • Ready to work event dispatcher

Xenus is a simple and elegant ODM for MongoDB. Learn more : https://github.com/abellion/xenus


If you haven't already installed Xenus, and thus satisfied its requirement to the mondogd extension, make sure to install the extension before requiring this package : https://www.php.net/manual/en/mongodb.installation.php Once installed, require the package :

composer require abellion/xenus-laravel


An instance of the Xenus\Connection class will automatically be constructed and registered inside the service container for you. To do so, Xenus reads the connection's settings from your config/database.php file under the mongodb.connection key. It must at least contain the host and the database you wish to connect to :

    'mongodb' => [
        'connection' => [
            'host' => 'mongodb://localhost:27017',
            'database' => 'my_database'

Service provider

In order to configure your collections, that is linking them to the Laravel's event dispatcher and defining them as singleton inside the service container, you must create a service provider. This service provider must extend Xenus\Laravel\XenusServiceProvider and contain a $collections property holding your collections :

use Xenus\Laravel\XenusServiceProvider as ServiceProvider;

class XenusServiceProvider extends ServiceProvider
    protected $collections = [

Failed jobs and migrations

The failed jobs and migrations bridges come pre-configured and ready to work. If you want to change the default collections names they use, edit the following :

For the migrations :

// config/database.php

    'migrations' => 'my_migration_collection'

For the failed jobs :

// config/queue.php

    'failed' => [
        'collection' => 'my_failed_jobs_collection'


Xenus is licensed under the MIT license.