Класс Phalcon\Mvc\Model\Transaction\Manager

Реализует Phalcon\Mvc\Model\Transaction\ManagerInterface, Phalcon\Di\InjectionAwareInterface

Source on GitHub

Транзакция действует на одно соединение с базой данных. Если у вас несколько баз данных, специфичных для класса, транзакция не будет защищать взаимодействие между ними.

Этот класс управляет объектами, которые составляют транзакцию. Транзакция создает уникальное соединение, которое передается каждой предметной части транзакции.

<?php

try {
   use Phalcon\Mvc\Model\Transaction\Manager as TransactionManager;

   $transactionManager = new TransactionManager();

   $transaction = $transactionManager->get();

   $robot = new Robots();

   $robot->setTransaction($transaction);

   $robot->name       = "WALL·E";
   $robot->created_at = date("Y-m-d");

   if ($robot->save() === false){
       $transaction->rollback("Can't save robot");
   }

   $robotPart = new RobotParts();

   $robotPart->setTransaction($transaction);

   $robotPart->type = "head";

   if ($robotPart->save() === false) {
       $transaction->rollback("Can't save robot part");
   }

   $transaction->commit();
} catch (Phalcon\Mvc\Model\Transaction\Failed $e) {
   echo "Failed, reason: ", $e->getMessage();
}

Methods

public __construct ([Phalcon\DiInterface $dependencyInjector])

Phalcon\Mvc\Model\Transaction\Manager конструктор

public setDI (Phalcon\DiInterface $dependencyInjector)

Задает контейнер внедрения зависимостей

public getDI ()

Возвращает контейнер внедрения зависимостей

public setDbService (mixed $service)

Задает службу базы данных, используемую для выполнения изолированных транзакций

public string getDbService ()

Возвращает службу базы данных, используемую для изоляции транзакции

public setRollbackPendent (mixed $rollbackPendent)

Задать, должен ли диспетчер транзакций регистрировать функцию завершения работы для очистки отложенных транзакций

public getRollbackPendent ()

Проверить, регистрирует ли диспетчер транзакций функцию выключения для очистки транзакций

public has ()

Проверить, имеет ли менеджер активную транзакцию

public get ([mixed $autoBegin])

Возвращает новую \Phalcon\Mvc\Model\Transaction или уже созданную транзакцию после того, как этот метод зарегистрирует функцию выключения для отката активных соединений

public getOrCreateTransaction ([mixed $autoBegin])

Создает/возвращает новую транзакцию или существующую

public rollbackPendent ()

Откаты активных транзакций внутри менеджера

public commit ()

Фиксирует активные транзакции в менеджере

public rollback ([boolean $collect])

Откат активных транзакций внутри менеджера. Collect удалит транзакцию из менеджера

public notifyRollback (Phalcon\Mvc\Model\TransactionInterface $transaction)

Уведомляет менеджера о откате транзакции

public notifyCommit (Phalcon\Mvc\Model\TransactionInterface $transaction)

Уведомляет менеджера о совершенной транзакции

protected _collectTransaction (Phalcon\Mvc\Model\TransactionInterface $transaction)

Удаляет транзакции из TransactionManager

public collectTransactions ()

Удалите все транзакции из менеджера