From 603a956b8d2a6d588889c21394e3948500d425da Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Thu, 12 Nov 2015 17:01:43 +0100 Subject: [PATCH 1/2] Implemented __sleep in yii\db\Connection to support serializing the connection object without exceptions. - Added test for serializing an open connection. - Added unserialize test close #10149 --- framework/CHANGELOG.md | 1 + framework/db/Connection.php | 10 ++++++++++ tests/framework/db/ConnectionTest.php | 12 ++++++++++++ 3 files changed, 23 insertions(+) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index f9afa26ae5..a1a2fbc11a 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -57,6 +57,7 @@ Yii Framework 2 Change Log - Enh #10056: Allowed any callable to be passed to `ActionColumn::$urlCreator` (freezy-sk) - Enh #10061: `yii\helpers\BaseInflector::transliterate()` is now public. Introduced different levels of transliteration strictness (silverfire) - Enh #10118: Allow easy extension of slug generation in `yii\behaviors\SluggableBehavior` (cebe, hesna) +- Enh #10149: Made `yii\db\Connection` serializable (Sam Mousa) - Enh: Added last resort measure for `FileHelper::removeDirectory()` fail to unlink symlinks under Windows (samdark) - Chg #9369: `Yii::$app->user->can()` now returns `false` instead of erroring in case `authManager` component is not configured (creocoder) - Chg #9411: `DetailView` now automatically sets container tag ID in case it's not specified (samdark) diff --git a/framework/db/Connection.php b/framework/db/Connection.php index e1a1bc02aa..47a17e42ac 100644 --- a/framework/db/Connection.php +++ b/framework/db/Connection.php @@ -945,4 +945,14 @@ class Connection extends Component return null; } + + /** + * Close the connection before serializing. + * @return array + */ + public function __sleep() + { + $this->close(); + return array_keys((array) $this); + } } diff --git a/tests/framework/db/ConnectionTest.php b/tests/framework/db/ConnectionTest.php index d9084a3a16..2108baddc8 100644 --- a/tests/framework/db/ConnectionTest.php +++ b/tests/framework/db/ConnectionTest.php @@ -11,6 +11,7 @@ use yii\db\Transaction; */ class ConnectionTest extends DatabaseTestCase { + public function testConstruct() { $connection = $this->getConnection(false); @@ -42,6 +43,17 @@ class ConnectionTest extends DatabaseTestCase $connection->open(); } + public function testSerialize() + { + $connection = $this->getConnection(false, false); + $connection->open(); + $serialized = serialize($connection); + $unserialized = unserialize($serialized); + $this->assertInstanceOf('yii\db\Connection', $unserialized); + + $this->assertEquals(123, $connection->createCommand("SELECT 123")->queryScalar()); + } + public function testGetDriverName() { $connection = $this->getConnection(false, false); From a349c1ee1b78343bdeb0214a5453021a795da87c Mon Sep 17 00:00:00 2001 From: lichunqiang Date: Thu, 5 Nov 2015 12:16:21 +0800 Subject: [PATCH 2/2] Changed yii.confirm context bind --- framework/CHANGELOG.md | 1 + framework/UPGRADE.md | 3 ++- framework/assets/yii.js | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index a1a2fbc11a..780fd3f5e1 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -63,6 +63,7 @@ Yii Framework 2 Change Log - Chg #9411: `DetailView` now automatically sets container tag ID in case it's not specified (samdark) - Chg #9953: `TimestampBehavior::getValue()` changed to make value processing consistent with `AttributeBehavior::getValue()` (silverfire) - New #10083: Added wrapper for PHP webserver (samdark) +- Enh #10098: Changed `yii.confirm` context bind to triggered dom element. (lichunqiang) 2.0.6 August 05, 2015 --------------------- diff --git a/framework/UPGRADE.md b/framework/UPGRADE.md index ccad8a6fc5..9f789f3b81 100644 --- a/framework/UPGRADE.md +++ b/framework/UPGRADE.md @@ -25,7 +25,8 @@ initialization to support wider range of allowed characters. Because of this cha See the [Cache Flushing Guide](http://www.yiiframework.com/doc-2.0/guide-caching-data.html#cache-flushing) - If you implement `parseRequest()` or `createUrl()` and rely on parameter names, call `substitutePlaceholderNames()` in order to replace temporary IDs with parameter names after doing matching. - +* The context of `yii.confirm` function in `yii.js` was changed to the triggered dom element. + - If you rewrited the `yii.confirm` function, you can get the triggered dom element as: `this` or `$(this)` to get jquery object. Upgrade from Yii 2.0.5 ---------------------- diff --git a/framework/assets/yii.js b/framework/assets/yii.js index ccf1c96181..da43dd8865 100644 --- a/framework/assets/yii.js +++ b/framework/assets/yii.js @@ -329,7 +329,7 @@ yii = (function ($) { } if (message !== undefined) { - pub.confirm(message, function () { + $.proxy(pub.confirm, this)(message, function () { pub.handleAction($this, event); }); } else {