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']);