Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/var-dumper/Caster/PdoCaster.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 4c8ae668cc8c |
children |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
18 * | 18 * |
19 * @author Nicolas Grekas <p@tchwork.com> | 19 * @author Nicolas Grekas <p@tchwork.com> |
20 */ | 20 */ |
21 class PdoCaster | 21 class PdoCaster |
22 { | 22 { |
23 private static $pdoAttributes = array( | 23 private static $pdoAttributes = [ |
24 'CASE' => array( | 24 'CASE' => [ |
25 \PDO::CASE_LOWER => 'LOWER', | 25 \PDO::CASE_LOWER => 'LOWER', |
26 \PDO::CASE_NATURAL => 'NATURAL', | 26 \PDO::CASE_NATURAL => 'NATURAL', |
27 \PDO::CASE_UPPER => 'UPPER', | 27 \PDO::CASE_UPPER => 'UPPER', |
28 ), | 28 ], |
29 'ERRMODE' => array( | 29 'ERRMODE' => [ |
30 \PDO::ERRMODE_SILENT => 'SILENT', | 30 \PDO::ERRMODE_SILENT => 'SILENT', |
31 \PDO::ERRMODE_WARNING => 'WARNING', | 31 \PDO::ERRMODE_WARNING => 'WARNING', |
32 \PDO::ERRMODE_EXCEPTION => 'EXCEPTION', | 32 \PDO::ERRMODE_EXCEPTION => 'EXCEPTION', |
33 ), | 33 ], |
34 'TIMEOUT', | 34 'TIMEOUT', |
35 'PREFETCH', | 35 'PREFETCH', |
36 'AUTOCOMMIT', | 36 'AUTOCOMMIT', |
37 'PERSISTENT', | 37 'PERSISTENT', |
38 'DRIVER_NAME', | 38 'DRIVER_NAME', |
39 'SERVER_INFO', | 39 'SERVER_INFO', |
40 'ORACLE_NULLS' => array( | 40 'ORACLE_NULLS' => [ |
41 \PDO::NULL_NATURAL => 'NATURAL', | 41 \PDO::NULL_NATURAL => 'NATURAL', |
42 \PDO::NULL_EMPTY_STRING => 'EMPTY_STRING', | 42 \PDO::NULL_EMPTY_STRING => 'EMPTY_STRING', |
43 \PDO::NULL_TO_STRING => 'TO_STRING', | 43 \PDO::NULL_TO_STRING => 'TO_STRING', |
44 ), | 44 ], |
45 'CLIENT_VERSION', | 45 'CLIENT_VERSION', |
46 'SERVER_VERSION', | 46 'SERVER_VERSION', |
47 'STATEMENT_CLASS', | 47 'STATEMENT_CLASS', |
48 'EMULATE_PREPARES', | 48 'EMULATE_PREPARES', |
49 'CONNECTION_STATUS', | 49 'CONNECTION_STATUS', |
50 'STRINGIFY_FETCHES', | 50 'STRINGIFY_FETCHES', |
51 'DEFAULT_FETCH_MODE' => array( | 51 'DEFAULT_FETCH_MODE' => [ |
52 \PDO::FETCH_ASSOC => 'ASSOC', | 52 \PDO::FETCH_ASSOC => 'ASSOC', |
53 \PDO::FETCH_BOTH => 'BOTH', | 53 \PDO::FETCH_BOTH => 'BOTH', |
54 \PDO::FETCH_LAZY => 'LAZY', | 54 \PDO::FETCH_LAZY => 'LAZY', |
55 \PDO::FETCH_NUM => 'NUM', | 55 \PDO::FETCH_NUM => 'NUM', |
56 \PDO::FETCH_OBJ => 'OBJ', | 56 \PDO::FETCH_OBJ => 'OBJ', |
57 ), | 57 ], |
58 ); | 58 ]; |
59 | 59 |
60 public static function castPdo(\PDO $c, array $a, Stub $stub, $isNested) | 60 public static function castPdo(\PDO $c, array $a, Stub $stub, $isNested) |
61 { | 61 { |
62 $attr = array(); | 62 $attr = []; |
63 $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE); | 63 $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE); |
64 $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); | 64 $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); |
65 | 65 |
66 foreach (self::$pdoAttributes as $k => $v) { | 66 foreach (self::$pdoAttributes as $k => $v) { |
67 if (!isset($k[0])) { | 67 if (!isset($k[0])) { |
68 $k = $v; | 68 $k = $v; |
69 $v = array(); | 69 $v = []; |
70 } | 70 } |
71 | 71 |
72 try { | 72 try { |
73 $attr[$k] = 'ERRMODE' === $k ? $errmode : $c->getAttribute(constant('PDO::ATTR_'.$k)); | 73 $attr[$k] = 'ERRMODE' === $k ? $errmode : $c->getAttribute(\constant('PDO::ATTR_'.$k)); |
74 if ($v && isset($v[$attr[$k]])) { | 74 if ($v && isset($v[$attr[$k]])) { |
75 $attr[$k] = new ConstStub($v[$attr[$k]], $attr[$k]); | 75 $attr[$k] = new ConstStub($v[$attr[$k]], $attr[$k]); |
76 } | 76 } |
77 } catch (\Exception $e) { | 77 } catch (\Exception $e) { |
78 } | 78 } |
83 } | 83 } |
84 $attr[$k][0] = new ClassStub($attr[$k][0]); | 84 $attr[$k][0] = new ClassStub($attr[$k][0]); |
85 } | 85 } |
86 | 86 |
87 $prefix = Caster::PREFIX_VIRTUAL; | 87 $prefix = Caster::PREFIX_VIRTUAL; |
88 $a += array( | 88 $a += [ |
89 $prefix.'inTransaction' => method_exists($c, 'inTransaction'), | 89 $prefix.'inTransaction' => method_exists($c, 'inTransaction'), |
90 $prefix.'errorInfo' => $c->errorInfo(), | 90 $prefix.'errorInfo' => $c->errorInfo(), |
91 $prefix.'attributes' => new EnumStub($attr), | 91 $prefix.'attributes' => new EnumStub($attr), |
92 ); | 92 ]; |
93 | 93 |
94 if ($a[$prefix.'inTransaction']) { | 94 if ($a[$prefix.'inTransaction']) { |
95 $a[$prefix.'inTransaction'] = $c->inTransaction(); | 95 $a[$prefix.'inTransaction'] = $c->inTransaction(); |
96 } else { | 96 } else { |
97 unset($a[$prefix.'inTransaction']); | 97 unset($a[$prefix.'inTransaction']); |