This package integrates Xenus to the Laravel and Lumen frameworks (from version 5.8
up to the latest 9.0
) :
- Out of the box failed jobs and migrations integration
- Ready to work event dispatcher
Xenus is a simple and elegant MongoDB ODM. Learn more : https://github.com/abellion/xenus
If you haven't already installed Xenus, and thus satisfied its requirement to the mongodb
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'
]
]
]
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 = [
MyCollection::class
];
}
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.