1 | <?php |
||
13 | class TxConfig |
||
14 | { |
||
15 | /** The `SERIALIZABLE` isolation level. */ |
||
16 | const ISOLATION_SERIALIZABLE = 1; |
||
17 | /** The `REPEATABLE READ` isolation level. */ |
||
18 | const ISOLATION_REPEATABLE_READ = 2; |
||
19 | /** The `READ COMMITTED` isolation level. */ |
||
20 | const ISOLATION_READ_COMMITTED = 4; |
||
21 | /** The `READ UNCOMMITTED` isolation level. */ |
||
22 | const ISOLATION_READ_UNCOMMITTED = 8; |
||
23 | |||
24 | /** The `READ WRITE` access mode. */ |
||
25 | const ACCESS_READ_WRITE = 128; |
||
26 | /** The `READ ONLY` access mode. */ |
||
27 | const ACCESS_READ_ONLY = 256; |
||
28 | |||
29 | /** The `DEFERRABLE` deferrable mode. Only effective in `SERIALIZABLE` `READ ONLY` transactions. */ |
||
30 | const DEFERRABLE = 4096; |
||
31 | /** The `NOT DEFERRABLE` deferrable mode. */ |
||
32 | const NOT_DEFERRABLE = 8192; |
||
33 | |||
34 | |||
35 | private $isolationLevel = null; |
||
36 | private $readOnly = null; |
||
37 | private $deferrable = null; |
||
38 | |||
39 | |||
40 | public static function create($transactionOptions) |
||
48 | |||
49 | /** |
||
50 | * @param int $options one or more {@link TxConfig} constants combined together with the <tt>|</tt> operator |
||
51 | */ |
||
52 | public function __construct(int $options = 0) |
||
69 | |||
70 | private static function initBool(int $options, int $trueBit, int $falseBit, string $errorDesc) |
||
83 | |||
84 | /** |
||
85 | * @return int|null one of the <tt>ISOLATION_*</tt> constants, or <tt>null</tt> if no isolation level is specified |
||
86 | */ |
||
87 | public function getIsolationLevel() |
||
91 | |||
92 | /** |
||
93 | * @param int|null $isolationLevel one of the <tt>ISOLATION_*</tt> constants, or <tt>null</tt> to clear specifying |
||
94 | * the isolation level |
||
95 | * @return $this |
||
96 | */ |
||
97 | public function setIsolationLevel($isolationLevel) |
||
113 | |||
114 | /** |
||
115 | * @return bool|null whether the access mode is specified as read-only, or <tt>null</tt> if no access mode is |
||
116 | * specified |
||
117 | */ |
||
118 | public function isReadOnly() |
||
122 | |||
123 | /** |
||
124 | * @param bool|null $readOnly |
||
125 | * @return TxConfig |
||
126 | */ |
||
127 | public function setReadOnly($readOnly): TxConfig |
||
132 | |||
133 | /** |
||
134 | * @return bool|null |
||
135 | */ |
||
136 | public function isDeferrable() |
||
140 | |||
141 | /** |
||
142 | * @param bool|null $deferrable |
||
143 | * @return TxConfig |
||
144 | */ |
||
145 | public function setDeferrable($deferrable): TxConfig |
||
150 | |||
151 | public function toSql(): string |
||
187 | } |
||
188 |