PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.4.1
Admin Columns v4.4.1
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Storage / Transaction.php
codepress-admin-columns / classes / Storage Last commit date
KeyValuePair.php 4 years ago ListScreenOrder.php 4 years ago Option.php 4 years ago OptionFactory.php 4 years ago SiteOption.php 4 years ago Timestamp.php 4 years ago Transaction.php 4 years ago UserMeta.php 4 years ago
Transaction.php
86 lines
1 <?php
2
3 namespace AC\Storage;
4
5 use LogicException;
6 use wpdb;
7
8 final class Transaction {
9
10 const START = 1;
11 const COMMIT = 2;
12 const ROLLBACK = 3;
13
14 /**
15 * @var bool
16 */
17 private $started = false;
18
19 /**
20 * @param bool $start Will start a transaction on creation if true
21 */
22 public function __construct( $start = true ) {
23 if ( $start === true ) {
24 $this->start();
25 }
26 }
27
28 /**
29 * @param integer $type
30 */
31 private function statement( $type ) {
32 global $wpdb;
33
34 if ( ! $wpdb instanceof wpdb ) {
35 throw new LogicException( 'The WordPress database is not yet initialized.' );
36 }
37
38 switch ( $type ) {
39 case self::START:
40 $sql = 'START TRANSACTION';
41
42 break;
43 case self::COMMIT:
44 $sql = 'COMMIT';
45
46 break;
47 case self::ROLLBACK:
48 $sql = 'ROLLBACK';
49
50 break;
51 default:
52 throw new LogicException( sprintf( 'Found invalid transaction statement: %s.', $type ) );
53 }
54
55 $wpdb->hide_errors();
56 $wpdb->query( $sql );
57 }
58
59 /**
60 * Start a MySQL transaction
61 */
62 public function start() {
63 if ( $this->started ) {
64 throw new LogicException( 'Transaction has started already.' );
65 }
66
67 $this->started = true;
68
69 $this->statement( self::START );
70 }
71
72 /**
73 * Commit a MySQL transaction
74 */
75 public function commit() {
76 $this->statement( self::COMMIT );
77 }
78
79 /**
80 * Rollback a MySQL transaction
81 */
82 public function rollback() {
83 $this->statement( self::ROLLBACK );
84 }
85
86 }