mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 04:37:42 +08:00
Russian translation updates [skip ci]
This commit is contained in:
@ -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()]]. Например:
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user