Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abellion/xenus-laravel
Xenus integration for the Laravel and Lumen frameworks
https://github.com/abellion/xenus-laravel
laravel lumen mongodb mongodb-odm odm php
Last synced: 9 days ago
JSON representation
Xenus integration for the Laravel and Lumen frameworks
- Host: GitHub
- URL: https://github.com/abellion/xenus-laravel
- Owner: abellion
- License: mit
- Created: 2020-07-31T08:54:57.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-04T19:39:53.000Z (over 2 years ago)
- Last Synced: 2024-09-23T03:15:17.187Z (about 2 months ago)
- Topics: laravel, lumen, mongodb, mongodb-odm, odm, php
- Language: PHP
- Homepage:
- Size: 60.5 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
This package integrates [Xenus](https://github.com/abellion/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
## Installation
If you haven't already installed [Xenus](https://github.com/abellion/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 :```bash
composer require abellion/xenus-laravel
```## Configuration
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 :```php
[
'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 :```php
use Xenus\Laravel\XenusServiceProvider as ServiceProvider;class XenusServiceProvider extends ServiceProvider
{
protected $collections = [
MyCollection::class
];
}
```## 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 :**
```php
// config/database.php[
'migrations' => 'my_migration_collection'
]
```**For the failed jobs :**
```php
// config/queue.php[
'failed' => [
'collection' => 'my_failed_jobs_collection'
]
]
```## License
Xenus is licensed under the [MIT license](http://opensource.org/licenses/MIT).