public function register()
{
$this->app->singleton('flarum.db', function () {
$factory = new ConnectionFactory($this->app);
$connection = $factory->make($this->app->config('database'));
$connection->setEventDispatcher($this->app->make('Illuminate\\Contracts\\Events\\Dispatcher'));
$connection->setFetchMode(PDO::FETCH_CLASS);
return $connection;
});
$this->app->alias('flarum.db', 'Illuminate\\Database\\ConnectionInterface');
$this->app->singleton('Illuminate\\Database\\ConnectionResolverInterface', function () {
$resolver = new ConnectionResolver(['flarum' => $this->app->make('flarum.db')]);
$resolver->setDefaultConnection('flarum');
return $resolver;
});
$this->app->alias('Illuminate\\Database\\ConnectionResolverInterface', 'db');
$this->app->singleton('Flarum\\Database\\MigrationRepositoryInterface', function ($app) {
return new DatabaseMigrationRepository($app['db'], 'migrations');
});
$this->app->bind(MigrationCreator::class, function (Application $app) {
return new MigrationCreator($app->make('Illuminate\\Filesystem\\Filesystem'), $app->basePath());
});
}