123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Model\ResourceModel\Db;
- use Magento\Framework\DB\Adapter\AdapterInterface as Connection;
- class TransactionManager implements TransactionManagerInterface
- {
- /**
- * @var Connection[]
- */
- protected $participants;
- /**
- * {@inheritdoc}
- */
- public function start(Connection $connection)
- {
- $this->participants[] = $connection;
- $connection->beginTransaction();
- return $connection;
- }
- /**
- * {@inheritdoc}
- */
- public function commit()
- {
- /** @var \Magento\Framework\DB\Adapter\AdapterInterface $connection */
- while ($connection = array_pop($this->participants)) {
- $connection->commit();
- }
- }
- /**
- * {@inheritdoc}
- */
- public function rollBack()
- {
- /** @var \Magento\Framework\DB\Adapter\AdapterInterface $connection */
- while ($connection = array_pop($this->participants)) {
- $connection->rollBack();
- }
- }
- /**
- * Get object key
- *
- * @param Connection $connection
- * @return string
- */
- protected function getConnectionKey(Connection $connection)
- {
- return spl_object_hash($connection);
- }
- }
|