mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-12 03:30:12 +08:00
Removed requirement to use \Callback from Connection::transaction, improved docs
This commit is contained in:
@@ -82,13 +82,11 @@ use yii\caching\Cache;
|
|||||||
* });
|
* });
|
||||||
* ~~~
|
* ~~~
|
||||||
*
|
*
|
||||||
* If needed you can pass transaction object instance as a second parameter, for example when you need to
|
* If needed you can pass transaction isolation level as a second parameter:
|
||||||
* set custom transaction isolation level:
|
|
||||||
*
|
*
|
||||||
* ~~~
|
* ~~~
|
||||||
* $connection->transaction(function() {
|
* $connection->transaction(function(Transaction $transaction) {
|
||||||
*
|
* // $transaction->db->...
|
||||||
* // your code here
|
|
||||||
* }, Transaction::READ_UNCOMMITTED);
|
* }, Transaction::READ_UNCOMMITTED);
|
||||||
* ~~~
|
* ~~~
|
||||||
*
|
*
|
||||||
@@ -461,18 +459,18 @@ class Connection extends Component
|
|||||||
/**
|
/**
|
||||||
* Executes callback provided in a transaction.
|
* Executes callback provided in a transaction.
|
||||||
*
|
*
|
||||||
* @param \Closure $callback a callback that performs the job. Accepts transaction instance as parameter.
|
* @param mixed $callback a valid PHP callback that performs the job. Accepts transaction instance as parameter.
|
||||||
* @param string|null $isolationLevel The isolation level to use for this transaction.
|
* @param string|null $isolationLevel The isolation level to use for this transaction.
|
||||||
* See [[Transaction::begin()]] for details.
|
* See [[Transaction::begin()]] for details.
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
* @return mixed result of callback function
|
* @return mixed result of callback function
|
||||||
*/
|
*/
|
||||||
public function transaction(\Closure $callback, $isolationLevel = null)
|
public function transaction($callback, $isolationLevel = null)
|
||||||
{
|
{
|
||||||
$transaction = $this->beginTransaction($isolationLevel);
|
$transaction = $this->beginTransaction($isolationLevel);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$result = $callback($transaction);
|
$result = call_user_func($callback, $transaction);
|
||||||
$transaction->commit();
|
$transaction->commit();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$transaction->rollBack();
|
$transaction->rollBack();
|
||||||
|
|||||||
Reference in New Issue
Block a user