Russian translation updates [skip ci]

This commit is contained in:
Alexander Makarov
2017-01-01 13:32:56 +07:00
parent ed849c6d87
commit d8a3f731c5
2 changed files with 25 additions and 6 deletions

View File

@ -644,9 +644,16 @@ try {
} catch(\Exception $e) { } catch(\Exception $e) {
$transaction->rollBack(); $transaction->rollBack();
throw $e; 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()]]. Например: в методе [[yii\db\ActiveRecord::transactions()]]. Например:

View File

@ -329,15 +329,18 @@ try {
// ... executing other SQL statements ... // ... executing other SQL statements ...
$transaction->commit(); $transaction->commit();
} catch(\Exception $e) { } catch(\Exception $e) {
$transaction->rollBack(); $transaction->rollBack();
throw $e; 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\Connection::beginTransaction()|beginTransaction()]], будет запущена новая транзакция.
Транзакция представлена объектом [[yii\db\Transaction]] сохранённым в переменной `$transaction`. Потом, запросы будут Транзакция представлена объектом [[yii\db\Transaction]] сохранённым в переменной `$transaction`. Потом, запросы будут
выполняться в блоке `try...catch...`. Если запросы будут выполнены удачно, будет выполнен метод [[yii\db\Transaction::commit()|commit()]]. выполняться в блоке `try...catch...`. Если запросы будут выполнены удачно, будет выполнен метод [[yii\db\Transaction::commit()|commit()]].
@ -357,7 +360,7 @@ Yii::$app->db->transaction(function ($db) {
.... ....
}, $isolationLevel); }, $isolationLevel);
// or alternatively // или
$transaction = Yii::$app->db->beginTransaction($isolationLevel); $transaction = Yii::$app->db->beginTransaction($isolationLevel);
``` ```
@ -393,10 +396,10 @@ Yii предоставляет четыре константы для наибо
```php ```php
Yii::$app->db->transaction(function ($db) { Yii::$app->db->transaction(function ($db) {
// outer transaction // внешняя транзакция
$db->transaction(function ($db) { $db->transaction(function ($db) {
// inner transaction // внутренняя транзакция
}); });
}); });
``` ```
@ -415,11 +418,17 @@ try {
$innerTransaction->commit(); $innerTransaction->commit();
} catch (\Exception $e) { } catch (\Exception $e) {
$innerTransaction->rollBack(); $innerTransaction->rollBack();
} catch (\Throwable $e) {
$innerTransaction->rollBack();
throw $e;
} }
$outerTransaction->commit(); $outerTransaction->commit();
} catch (\Exception $e) { } catch (\Exception $e) {
$outerTransaction->rollBack(); $outerTransaction->rollBack();
} catch (\Throwable $e) {
$innerTransaction->rollBack();
throw $e;
} }
``` ```
@ -560,6 +569,9 @@ try {
} catch(\Exception $e) { } catch(\Exception $e) {
$transaction->rollBack(); $transaction->rollBack();
throw $e; throw $e;
} catch (\Throwable $e) {
$innerTransaction->rollBack();
throw $e;
} }
``` ```