/** * @return \tomzx\LaravelMigration\BaseApplication */ private function initialize() { if (interface_exists('Illuminate\\Contracts\\Foundation\\Application')) { $container = new \tomzx\LaravelMigration\v5\Application(); $this->laravelVersion = 5; $container['path.database'] = getcwd(); } else { $container = new \tomzx\LaravelMigration\v4\Application(); $this->laravelVersion = 4; $container['path'] = getcwd(); $container['path.base'] = getcwd(); $container['path.database'] = getcwd() . '/database'; } $container->singleton('events', function () { return new Dispatcher(); }); $container->singleton('files', function () { return new Filesystem(); }); $container->singleton('config', function () use($container) { if ($this->laravelVersion === 5) { $config = (require_once 'database.php'); return new Repository(['database' => $config]); } else { $fileLoader = new FileLoader($container['files'], getcwd()); return new Repository($fileLoader, 'production'); } }); $container->singleton('composer', function () { $composer = m::mock('\\Illuminate\\Foundation\\Composer'); $composer->shouldReceive('dumpAutoloads'); return $composer; }); if ($this->laravelVersion === 4) { $container->singleton('command.dump-autoload', function () { $command = m::mock('\\Illuminate\\Console\\Command'); $command->shouldReceive('setLaravel')->shouldReceive('setApplication')->shouldReceive('isEnabled')->andReturn(true)->shouldReceive('getDefinition')->andReturn([])->shouldReceive('getName')->andReturn('dump-autoload')->shouldReceive('getAliases')->andReturn([])->shouldReceive('run'); return $command; }); $events = $container['events']; $events->listen('artisan.start', function ($artisan) { $artisan->resolveCommands(['command.dump-autoload']); }); } $databaseServiceProvider = new DatabaseServiceProvider($container); $databaseServiceProvider->register(); $migrationServiceProvider = new MigrationServiceProvider($container); $migrationServiceProvider->register(); return $container; }
/** * Register the service provider. * @return void */ public function register() { parent::register(); $this->app->bindShared('db.dongle', function ($app) { return new Dongle($this->getDefaultDatabaseDriver(), $app['db']); }); }
/** * Register the service provider. * @return void */ public function register() { parent::register(); Model::clearExtendedClasses(); $this->app->singleton('db.dongle', function ($app) { return new Dongle($this->getDefaultDatabaseDriver(), $app['db']); }); }
/** * Register the service provider. * * @return void */ public function register() { parent::register(); // Register new MySql connection class $this->app->singleton('db.connection.mysql', function (Application $app, array $paramaters) { return new MySqlConnection($paramaters[0], $paramaters[1], $paramaters[2], $paramaters[3]); }); // Register new PostgreSql connection $this->app->singleton('db.connection.pgsql', function (Application $app, array $paramaters) { return new PostgresConnection($paramaters[0], $paramaters[1], $paramaters[2], $paramaters[3]); }); }