PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / database / DatabaseTransactionsManager.php
independent-analytics / vendor / illuminate / database Last commit date
Capsule 2 years ago Concerns 1 month ago Connectors 1 month ago Console 1 month ago DBAL 1 month ago Eloquent 1 month ago Events 1 month ago Migrations 1 month ago PDO 1 month ago Query 1 month ago Schema 1 month ago ClassMorphViolationException.php 2 years ago ConfigurationUrlParser.php 2 years ago Connection.php 1 month ago ConnectionInterface.php 2 years ago ConnectionResolver.php 1 month ago ConnectionResolverInterface.php 2 years ago DatabaseManager.php 1 month ago DatabaseServiceProvider.php 1 month ago DatabaseTransactionRecord.php 1 month ago DatabaseTransactionsManager.php 1 month ago DeadlockException.php 1 month ago DetectsConcurrencyErrors.php 2 years ago DetectsLostConnections.php 1 month ago Grammar.php 1 month ago LazyLoadingViolationException.php 2 years ago LostConnectionException.php 1 month ago MigrationServiceProvider.php 1 month ago MultipleColumnsSelectedException.php 1 month ago MultipleRecordsFoundException.php 1 month ago MySqlConnection.php 1 month ago PostgresConnection.php 1 month ago QueryException.php 2 years ago RecordsNotFoundException.php 2 years ago SQLiteConnection.php 1 month ago SQLiteDatabaseDoesNotExistException.php 1 month ago Seeder.php 1 month ago SqlServerConnection.php 1 month ago
DatabaseTransactionsManager.php
114 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database;
4
5 /** @internal */
6 class DatabaseTransactionsManager
7 {
8 /**
9 * All of the recorded transactions.
10 *
11 * @var \Illuminate\Support\Collection
12 */
13 protected $transactions;
14 /**
15 * The database transaction that should be ignored by callbacks.
16 *
17 * @var \Illuminate\Database\DatabaseTransactionRecord
18 */
19 protected $callbacksShouldIgnore;
20 /**
21 * Create a new database transactions manager instance.
22 *
23 * @return void
24 */
25 public function __construct()
26 {
27 $this->transactions = \IAWPSCOPED\collect();
28 }
29 /**
30 * Start a new database transaction.
31 *
32 * @param string $connection
33 * @param int $level
34 * @return void
35 */
36 public function begin($connection, $level)
37 {
38 $this->transactions->push(new DatabaseTransactionRecord($connection, $level));
39 }
40 /**
41 * Rollback the active database transaction.
42 *
43 * @param string $connection
44 * @param int $level
45 * @return void
46 */
47 public function rollback($connection, $level)
48 {
49 $this->transactions = $this->transactions->reject(fn($transaction) => $transaction->connection == $connection && $transaction->level > $level)->values();
50 if ($this->transactions->isEmpty()) {
51 $this->callbacksShouldIgnore = null;
52 }
53 }
54 /**
55 * Commit the active database transaction.
56 *
57 * @param string $connection
58 * @return void
59 */
60 public function commit($connection)
61 {
62 [$forThisConnection, $forOtherConnections] = $this->transactions->partition(fn($transaction) => $transaction->connection == $connection);
63 $this->transactions = $forOtherConnections->values();
64 $forThisConnection->map->executeCallbacks();
65 if ($this->transactions->isEmpty()) {
66 $this->callbacksShouldIgnore = null;
67 }
68 }
69 /**
70 * Register a transaction callback.
71 *
72 * @param callable $callback
73 * @return void
74 */
75 public function addCallback($callback)
76 {
77 if ($current = $this->callbackApplicableTransactions()->last()) {
78 return $current->addCallback($callback);
79 }
80 $callback();
81 }
82 /**
83 * Specify that callbacks should ignore the given transaction when determining if they should be executed.
84 *
85 * @param \Illuminate\Database\DatabaseTransactionRecord $transaction
86 * @return $this
87 */
88 public function callbacksShouldIgnore(DatabaseTransactionRecord $transaction)
89 {
90 $this->callbacksShouldIgnore = $transaction;
91 return $this;
92 }
93 /**
94 * Get the transactions that are applicable to callbacks.
95 *
96 * @return \Illuminate\Support\Collection
97 */
98 public function callbackApplicableTransactions()
99 {
100 return $this->transactions->reject(function ($transaction) {
101 return $transaction === $this->callbacksShouldIgnore;
102 })->values();
103 }
104 /**
105 * Get all the transactions.
106 *
107 * @return \Illuminate\Support\Collection
108 */
109 public function getTransactions()
110 {
111 return $this->transactions;
112 }
113 }
114