Класс Phalcon\Mvc\Model\Transaction\Manager
реализует Phalcon\Mvc\Model\Transaction\ManagerInterface, Phalcon\Di\InjectionAwareInterface
Транзакция работает с одной базой данных. Если у вас есть несколько баз данных, специфичных для класса, транзакция не будет защищать взаимодействие между ними.
Этот класс управляет объектами, составляющими транзакцию. Транзакция создаёт уникальное соединение, которое передаётся каждому объекту, участвующему в транзакции.
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();
}
Методы
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])
Откатывает активные транзакции в рамках менеджера. Сбор удалит транзакцию из менеджера
public notifyRollback (Phalcon\Mvc\Model\TransactionInterface $transaction)
Уведомляет менеджер об откате транзакции
public notifyCommit (Phalcon\Mvc\Model\TransactionInterface $transaction)
Уведомляет менеджер о подтверждении транзакции
protected _collectTransaction (Phalcon\Mvc\Model\TransactionInterface $transaction)
Удаляет транзакции из TransactionManager
public collectTransactions ()
Удаляет все транзакции из менеджера
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Mvc_Model_Transaction_Manager.html