Example #1
0
 /**
  * @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]);
     });
 }