Fixes #14864: Ability to use dependencies in constructor of migrations

This commit is contained in:
Vitaly
2017-09-23 02:24:18 +03:00
committed by Alexander Makarov
parent 7ff12aac42
commit ab8c54f12a
3 changed files with 12 additions and 3 deletions

View File

@ -76,7 +76,7 @@ Yii Framework 2 Change Log
- Chg #14286: Used primary inputmask package name instead of an alias (samdark)
- Chg #14321: `yii\widgets\MaskedInput` is now registering its JavaScript `clientOptions` initialization code in head section (DaveFerger)
- Chg #14487: Changed i18n message error to warning (dmirogin)
- Enh #14864: Ability to use dependencies in constructor of migrations (vtvz)
2.0.12 June 05, 2017
--------------------

View File

@ -14,6 +14,7 @@ use yii\base\NotSupportedException;
use yii\console\Controller;
use yii\console\Exception;
use yii\console\ExitCode;
use yii\db\MigrationInterface;
use yii\helpers\Console;
use yii\helpers\FileHelper;
@ -760,10 +761,13 @@ abstract class BaseMigrateController extends Controller
protected function createMigration($class)
{
$this->includeMigrationFile($class);
$migration = new $class();
/** @var MigrationInterface $migration */
$migration = Yii::createObject($class);
if ($migration instanceof BaseObject && $migration->canSetProperty('compact')) {
$migration->compact = $this->compact;
}
return $migration;
}

View File

@ -185,7 +185,12 @@ class MigrateController extends BaseMigrateController
protected function createMigration($class)
{
$this->includeMigrationFile($class);
return new $class(['db' => $this->db, 'compact' => $this->compact]);
return Yii::createObject([
'class' => $class,
'db' => $this->db,
'compact' => $this->compact,
]);
}
/**