From dd1fd95fbb07aa12ce6d22cbcbdd530f46d35804 Mon Sep 17 00:00:00 2001 From: Antonio Carlos Ribeiro Date: Tue, 23 Dec 2014 20:35:56 -0200 Subject: [PATCH 1/2] Automatically instantiate migrations dependencies --- .../Database/MigrationServiceProvider.php | 2 +- .../Database/Migrations/Migrator.php | 21 ++++++++++++++----- tests/Database/DatabaseMigratorTest.php | 6 ++++++ 3 files changed, 23 insertions(+), 6 deletions(-) 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..b04ce50f84e6 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->container = $container; $this->repository = $repository; } @@ -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'), )); From a5e88412ac45f834286a3203b875fdd7d03aa4ca Mon Sep 17 00:00:00 2001 From: Antonio Carlos Ribeiro Date: Tue, 23 Dec 2014 20:53:45 -0200 Subject: [PATCH 2/2] Aliasing the contract --- .../Database/Migrations/Migrator.php | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Illuminate/Database/Migrations/Migrator.php b/src/Illuminate/Database/Migrations/Migrator.php index b04ce50f84e6..2a2d72d61660 100755 --- a/src/Illuminate/Database/Migrations/Migrator.php +++ b/src/Illuminate/Database/Migrations/Migrator.php @@ -1,7 +1,7 @@ files = $files; - $this->resolver = $resolver; - $this->container = $container; $this->repository = $repository; + $this->container = $container; + $this->resolver = $resolver; + $this->files = $files; } /**