MongodbServiceProvider.php 995 Bytes
Newer Older
Jens Segers's avatar
Jens Segers committed
1 2 3
<?php namespace Jenssegers\Mongodb;

use Illuminate\Support\ServiceProvider;
4
use Jenssegers\Mongodb\Eloquent\Model;
Jens Segers's avatar
Jens Segers committed
5
use Jenssegers\Mongodb\Queue\MongoConnector;
Jens Segers's avatar
Jens Segers committed
6

Jens Segers's avatar
Jens Segers committed
7 8
class MongodbServiceProvider extends ServiceProvider
{
Jens Segers's avatar
Jens Segers committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
    /**
     * Bootstrap the application events.
     */
    public function boot()
    {
        Model::setConnectionResolver($this->app['db']);

        Model::setEventDispatcher($this->app['events']);
    }

    /**
     * Register the service provider.
     */
    public function register()
    {
Jens Segers's avatar
Jens Segers committed
24
        // Add database driver.
Jens Segers's avatar
Jens Segers committed
25 26
        $this->app->resolving('db', function ($db) {
            $db->extend('mongodb', function ($config) {
Jens Segers's avatar
Jens Segers committed
27 28 29
                return new Connection($config);
            });
        });
Jens Segers's avatar
Jens Segers committed
30 31 32 33 34 35 36

        // Add connector for queue support.
        $this->app->resolving('queue', function ($queue) {
            $queue->addConnector('mongodb', function () {
                return new MongoConnector($this->app['db']);
            });
        });
Jens Segers's avatar
Jens Segers committed
37 38
    }
}