PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.2
Independent Analytics – WordPress Analytics Plugin v2.15.2
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 2 weeks ago Connectors 2 weeks ago Console 2 weeks ago DBAL 2 weeks ago Eloquent 2 weeks ago Events 2 weeks ago Migrations 2 weeks ago PDO 2 weeks ago Query 2 weeks ago Schema 2 weeks ago ClassMorphViolationException.php 2 years ago ConfigurationUrlParser.php 2 years ago Connection.php 2 weeks ago ConnectionInterface.php 2 years ago ConnectionResolver.php 2 weeks ago ConnectionResolverInterface.php 2 years ago DatabaseManager.php 2 weeks ago DatabaseServiceProvider.php 2 weeks ago DatabaseTransactionRecord.php 2 weeks ago DatabaseTransactionsManager.php 2 weeks ago DeadlockException.php 2 weeks ago DetectsConcurrencyErrors.php 2 years ago DetectsLostConnections.php 2 weeks ago Grammar.php 2 weeks ago LazyLoadingViolationException.php 2 years ago LostConnectionException.php 2 weeks ago MigrationServiceProvider.php 2 weeks ago MultipleColumnsSelectedException.php 2 weeks ago MultipleRecordsFoundException.php 2 weeks ago MySqlConnection.php 2 weeks ago PostgresConnection.php 2 weeks ago QueryException.php 2 years ago RecordsNotFoundException.php 2 years ago SQLiteConnection.php 2 weeks ago SQLiteDatabaseDoesNotExistException.php 2 weeks ago Seeder.php 2 weeks ago SqlServerConnection.php 2 weeks 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