From d8a3f731c503e21ca1c61a3608ac018d0937493c Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sun, 1 Jan 2017 13:32:56 +0700 Subject: [PATCH] Russian translation updates [skip ci] --- docs/guide-ru/db-active-record.md | 7 +++++++ docs/guide-ru/db-dao.md | 24 ++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/docs/guide-ru/db-active-record.md b/docs/guide-ru/db-active-record.md index e023e37c5a..4df276e864 100644 --- a/docs/guide-ru/db-active-record.md +++ b/docs/guide-ru/db-active-record.md @@ -644,9 +644,16 @@ try { } catch(\Exception $e) { $transaction->rollBack(); throw $e; +} catch(\Throwable $e) { + $transaction->rollBack(); + throw $e; } ``` +> Note: в коде выше ради совместимости с PHP 5.x и PHP 7.x использованы два блока catch. +> `\Exception` реализует интерфейс [`\Throwable` interface](http://php.net/manual/ru/class.throwable.php) +> начиная с PHP 7.0. Если вы используете только PHP 7 и новее, можете пропустить блок с `\Exception`. + Второй способ заключается в том, чтобы перечислить операции с базой данных, которые требуют тразнакционного выполнения, в методе [[yii\db\ActiveRecord::transactions()]]. Например: diff --git a/docs/guide-ru/db-dao.md b/docs/guide-ru/db-dao.md index da1d9c89ad..0c710f9d04 100644 --- a/docs/guide-ru/db-dao.md +++ b/docs/guide-ru/db-dao.md @@ -329,15 +329,18 @@ try { // ... executing other SQL statements ... $transaction->commit(); - } catch(\Exception $e) { - $transaction->rollBack(); - throw $e; +} catch(\Throwable $e) { + $transaction->rollBack(); } ``` +> Note: в коде выше ради совместимости с PHP 5.x и PHP 7.x использованы два блока catch. +> `\Exception` реализует интерфейс [`\Throwable` interface](http://php.net/manual/ru/class.throwable.php) +> начиная с PHP 7.0. Если вы используете только PHP 7 и новее, можете пропустить блок с `\Exception`. + При вызове метода [[yii\db\Connection::beginTransaction()|beginTransaction()]], будет запущена новая транзакция. Транзакция представлена объектом [[yii\db\Transaction]] сохранённым в переменной `$transaction`. Потом, запросы будут выполняться в блоке `try...catch...`. Если запросы будут выполнены удачно, будет выполнен метод [[yii\db\Transaction::commit()|commit()]]. @@ -357,7 +360,7 @@ Yii::$app->db->transaction(function ($db) { .... }, $isolationLevel); -// or alternatively +// или $transaction = Yii::$app->db->beginTransaction($isolationLevel); ``` @@ -393,10 +396,10 @@ Yii предоставляет четыре константы для наибо ```php Yii::$app->db->transaction(function ($db) { - // outer transaction + // внешняя транзакция $db->transaction(function ($db) { - // inner transaction + // внутренняя транзакция }); }); ``` @@ -415,11 +418,17 @@ try { $innerTransaction->commit(); } catch (\Exception $e) { $innerTransaction->rollBack(); + } catch (\Throwable $e) { + $innerTransaction->rollBack(); + throw $e; } $outerTransaction->commit(); } catch (\Exception $e) { $outerTransaction->rollBack(); +} catch (\Throwable $e) { + $innerTransaction->rollBack(); + throw $e; } ``` @@ -560,6 +569,9 @@ try { } catch(\Exception $e) { $transaction->rollBack(); throw $e; +} catch (\Throwable $e) { + $innerTransaction->rollBack(); + throw $e; } ```