diff --git a/src/Illuminate/Database/MigrationServiceProvider.php b/src/Illuminate/Database/MigrationServiceProvider.php index 247501797c30..45456e33cf57 100755 --- a/src/Illuminate/Database/MigrationServiceProvider.php +++ b/src/Illuminate/Database/MigrationServiceProvider.php @@ -67,7 +67,7 @@ protected function registerMigrator() { $repository = $app['migration.repository']; - return new Migrator($repository, $app['db'], $app['files']); + return new Migrator($repository, $app, $app['db'], $app['files']); }); } diff --git a/src/Illuminate/Database/Migrations/Migrator.php b/src/Illuminate/Database/Migrations/Migrator.php index fcb0e41bd659..2a2d72d61660 100755 --- a/src/Illuminate/Database/Migrations/Migrator.php +++ b/src/Illuminate/Database/Migrations/Migrator.php @@ -1,10 +1,18 @@ files = $files; - $this->resolver = $resolver; $this->repository = $repository; + $this->container = $container; + $this->resolver = $resolver; + $this->files = $files; } /** @@ -298,7 +309,7 @@ public function resolve($file) $class = studly_case($file); - return new $class; + return $this->container->make($class); } /** diff --git a/tests/Database/DatabaseMigratorTest.php b/tests/Database/DatabaseMigratorTest.php index 6a8bdba19abc..e57f3ace1757 100755 --- a/tests/Database/DatabaseMigratorTest.php +++ b/tests/Database/DatabaseMigratorTest.php @@ -14,6 +14,7 @@ public function testMigrationAreRunUpWhenOutstandingMigrationsExist() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), )); @@ -48,6 +49,7 @@ public function testUpMigrationCanBePretended() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), )); @@ -96,6 +98,7 @@ public function testNothingIsDoneWhenNoMigrationsAreOutstanding() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), )); @@ -115,6 +118,7 @@ public function testLastBatchOfMigrationsCanBeRolledBack() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), )); @@ -143,6 +147,7 @@ public function testRollbackMigrationsCanBePretended() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), )); @@ -183,6 +188,7 @@ public function testNothingIsRolledBackWhenNothingInRepository() { $migrator = $this->getMock('Illuminate\Database\Migrations\Migrator', array('resolve'), array( m::mock('Illuminate\Database\Migrations\MigrationRepositoryInterface'), + m::mock('Illuminate\Container\Container'), $resolver = m::mock('Illuminate\Database\ConnectionResolverInterface'), m::mock('Illuminate\Filesystem\Filesystem'), ));