From 64c4d8e718979e79c81915c4217057adbf188509 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Wed, 1 Jan 2014 20:52:27 -0500 Subject: [PATCH] Fixes #1733: Incorrect code about `$_modelClasses` in `DbFixtureManager` --- framework/CHANGELOG.md | 1 + framework/yii/test/DbFixtureManager.php | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 52bb199..29cac1a 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -20,6 +20,7 @@ Yii Framework 2 Change Log - Bug #1686: ActiveForm is creating duplicated messages in error summary (qiangxue) - Bug #1704: Incorrect regexp is used in `Inflector::camelize()` (qiangxue) - Bug #1710: OpenId auth client does not request required attributes correctly (klimov-paul) +- Bug #1733: Incorrect code about `$_modelClasses` in `DbFixtureManager` (qiangxue) - Bug: Fixed `Call to a member function registerAssetFiles() on a non-object` in case of wrong `sourcePath` for an asset bundle (samdark) - Bug: Fixed incorrect event name for `yii\jui\Spinner` (samdark) - Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe) diff --git a/framework/yii/test/DbFixtureManager.php b/framework/yii/test/DbFixtureManager.php index eab398b..303ca6e 100644 --- a/framework/yii/test/DbFixtureManager.php +++ b/framework/yii/test/DbFixtureManager.php @@ -10,7 +10,7 @@ namespace yii\test; use Yii; use yii\base\Component; use yii\base\InvalidConfigException; -use yii\db\ActiveRecordInterface; +use yii\db\ActiveRecord; use yii\db\Connection; /** @@ -59,7 +59,6 @@ class DbFixtureManager extends Component private $_rows; // fixture name, row alias => row private $_models; // fixture name, row alias => record (or class name) - private $_modelClasses; /** @@ -92,8 +91,7 @@ class DbFixtureManager extends Component foreach ($fixtures as $name => $fixture) { if (strpos($fixture, '\\') !== false) { $model = new $fixture; - if ($model instanceof ActiveRecordInterface) { - $this->_modelClasses[$name] = $fixture; + if ($model instanceof ActiveRecord) { $fixtures[$name] = $model->getTableSchema()->name; } else { throw new InvalidConfigException("Fixture '$fixture' must be an ActiveRecord class."); @@ -101,7 +99,7 @@ class DbFixtureManager extends Component } } - $this->_modelClasses = $this->_rows = $this->_models = []; + $this->_rows = $this->_models = []; $this->checkIntegrity(false); @@ -184,20 +182,20 @@ class DbFixtureManager extends Component * Returns the specified ActiveRecord instance in the fixture data. * @param string $fixtureName the fixture name * @param string $modelName the alias for the fixture data row - * @return ActiveRecordInterface the ActiveRecord instance. Null is returned if there is no such fixture row. + * @return ActiveRecord the ActiveRecord instance. Null is returned if there is no such fixture row. */ public function getModel($fixtureName, $modelName) { - if (!isset($this->_modelClasses[$fixtureName]) || !isset($this->_rows[$fixtureName][$modelName])) { + if (!isset($this->_rows[$fixtureName][$modelName])) { return null; } if (isset($this->_models[$fixtureName][$modelName])) { return $this->_models[$fixtureName][$modelName]; } $row = $this->_rows[$fixtureName][$modelName]; - /** @var ActiveRecordInterface $modelClass */ + /** @var ActiveRecord $modelClass */ $modelClass = $this->_models[$fixtureName]; - /** @var ActiveRecordInterface $model */ + /** @var ActiveRecord $model */ $model = new $modelClass; $keys = []; foreach ($model->primaryKey() as $key) {