1 | <?php |
||
19 | final class DSN |
||
20 | { |
||
21 | private static $PORTS = [ |
||
22 | 'redis' => 6379, |
||
23 | 'mongodb' => 27017, |
||
24 | 'tcp' => 6379, |
||
25 | ]; |
||
26 | |||
27 | /** |
||
28 | * @var string |
||
29 | */ |
||
30 | protected $dsn; |
||
31 | |||
32 | /** |
||
33 | * @var string |
||
34 | */ |
||
35 | protected $protocol; |
||
36 | |||
37 | /** |
||
38 | * @var array |
||
39 | */ |
||
40 | protected $authentication; |
||
41 | |||
42 | /** |
||
43 | * @var array |
||
44 | */ |
||
45 | protected $hosts; |
||
46 | |||
47 | /** |
||
48 | * @var int |
||
49 | */ |
||
50 | protected $database; |
||
51 | |||
52 | /** |
||
53 | * @var array |
||
54 | */ |
||
55 | protected $parameters = []; |
||
56 | |||
57 | /** |
||
58 | * Constructor. |
||
59 | * |
||
60 | * @param string $dsn |
||
61 | */ |
||
62 | 92 | public function __construct($dsn) |
|
67 | |||
68 | /** |
||
69 | * @return string |
||
70 | */ |
||
71 | 16 | public function getDsn() |
|
75 | |||
76 | /** |
||
77 | * @return string |
||
78 | */ |
||
79 | 92 | public function getProtocol() |
|
83 | |||
84 | /** |
||
85 | * @return int|null |
||
86 | */ |
||
87 | 18 | public function getDatabase() |
|
91 | |||
92 | /** |
||
93 | * @return array |
||
94 | */ |
||
95 | 14 | public function getHosts() |
|
99 | |||
100 | /** |
||
101 | * @return null|string |
||
102 | */ |
||
103 | 15 | public function getFirstHost() |
|
107 | |||
108 | /** |
||
109 | * @return null|int |
||
110 | */ |
||
111 | 16 | public function getFirstPort() |
|
115 | |||
116 | /** |
||
117 | * @return array |
||
118 | */ |
||
119 | public function getAuthentication() |
||
123 | |||
124 | 5 | public function getUsername() |
|
128 | |||
129 | 17 | public function getPassword() |
|
133 | |||
134 | /** |
||
135 | * @return array |
||
136 | */ |
||
137 | 8 | public function getParameters() |
|
141 | |||
142 | /** |
||
143 | * @return bool |
||
144 | */ |
||
145 | 16 | public function isValid() |
|
161 | |||
162 | 92 | private function parseProtocol($dsn) |
|
177 | |||
178 | /** |
||
179 | * @param string $dsn |
||
180 | */ |
||
181 | 92 | private function parseDsn($dsn) |
|
225 | |||
226 | 88 | private function parseHosts($hostString) |
|
240 | |||
241 | /** |
||
242 | * @param string $params |
||
243 | * |
||
244 | * @return string |
||
245 | */ |
||
246 | 8 | protected function parseParameters($params) |
|
257 | } |
||
258 |