Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/routing/RequestContext.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 /* | |
4 * This file is part of the Symfony package. | |
5 * | |
6 * (c) Fabien Potencier <fabien@symfony.com> | |
7 * | |
8 * For the full copyright and license information, please view the LICENSE | |
9 * file that was distributed with this source code. | |
10 */ | |
11 | |
12 namespace Symfony\Component\Routing; | |
13 | |
14 use Symfony\Component\HttpFoundation\Request; | |
15 | |
16 /** | |
17 * Holds information about the current request. | |
18 * | |
19 * This class implements a fluent interface. | |
20 * | |
21 * @author Fabien Potencier <fabien@symfony.com> | |
22 * @author Tobias Schultze <http://tobion.de> | |
23 */ | |
24 class RequestContext | |
25 { | |
26 private $baseUrl; | |
27 private $pathInfo; | |
28 private $method; | |
29 private $host; | |
30 private $scheme; | |
31 private $httpPort; | |
32 private $httpsPort; | |
33 private $queryString; | |
34 | |
35 /** | |
36 * @var array | |
37 */ | |
38 private $parameters = array(); | |
39 | |
40 /** | |
41 * Constructor. | |
42 * | |
43 * @param string $baseUrl The base URL | |
44 * @param string $method The HTTP method | |
45 * @param string $host The HTTP host name | |
46 * @param string $scheme The HTTP scheme | |
47 * @param int $httpPort The HTTP port | |
48 * @param int $httpsPort The HTTPS port | |
49 * @param string $path The path | |
50 * @param string $queryString The query string | |
51 */ | |
52 public function __construct($baseUrl = '', $method = 'GET', $host = 'localhost', $scheme = 'http', $httpPort = 80, $httpsPort = 443, $path = '/', $queryString = '') | |
53 { | |
54 $this->setBaseUrl($baseUrl); | |
55 $this->setMethod($method); | |
56 $this->setHost($host); | |
57 $this->setScheme($scheme); | |
58 $this->setHttpPort($httpPort); | |
59 $this->setHttpsPort($httpsPort); | |
60 $this->setPathInfo($path); | |
61 $this->setQueryString($queryString); | |
62 } | |
63 | |
64 /** | |
65 * Updates the RequestContext information based on a HttpFoundation Request. | |
66 * | |
67 * @param Request $request A Request instance | |
68 * | |
69 * @return $this | |
70 */ | |
71 public function fromRequest(Request $request) | |
72 { | |
73 $this->setBaseUrl($request->getBaseUrl()); | |
74 $this->setPathInfo($request->getPathInfo()); | |
75 $this->setMethod($request->getMethod()); | |
76 $this->setHost($request->getHost()); | |
77 $this->setScheme($request->getScheme()); | |
78 $this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort()); | |
79 $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort); | |
80 $this->setQueryString($request->server->get('QUERY_STRING', '')); | |
81 | |
82 return $this; | |
83 } | |
84 | |
85 /** | |
86 * Gets the base URL. | |
87 * | |
88 * @return string The base URL | |
89 */ | |
90 public function getBaseUrl() | |
91 { | |
92 return $this->baseUrl; | |
93 } | |
94 | |
95 /** | |
96 * Sets the base URL. | |
97 * | |
98 * @param string $baseUrl The base URL | |
99 * | |
100 * @return $this | |
101 */ | |
102 public function setBaseUrl($baseUrl) | |
103 { | |
104 $this->baseUrl = $baseUrl; | |
105 | |
106 return $this; | |
107 } | |
108 | |
109 /** | |
110 * Gets the path info. | |
111 * | |
112 * @return string The path info | |
113 */ | |
114 public function getPathInfo() | |
115 { | |
116 return $this->pathInfo; | |
117 } | |
118 | |
119 /** | |
120 * Sets the path info. | |
121 * | |
122 * @param string $pathInfo The path info | |
123 * | |
124 * @return $this | |
125 */ | |
126 public function setPathInfo($pathInfo) | |
127 { | |
128 $this->pathInfo = $pathInfo; | |
129 | |
130 return $this; | |
131 } | |
132 | |
133 /** | |
134 * Gets the HTTP method. | |
135 * | |
136 * The method is always an uppercased string. | |
137 * | |
138 * @return string The HTTP method | |
139 */ | |
140 public function getMethod() | |
141 { | |
142 return $this->method; | |
143 } | |
144 | |
145 /** | |
146 * Sets the HTTP method. | |
147 * | |
148 * @param string $method The HTTP method | |
149 * | |
150 * @return $this | |
151 */ | |
152 public function setMethod($method) | |
153 { | |
154 $this->method = strtoupper($method); | |
155 | |
156 return $this; | |
157 } | |
158 | |
159 /** | |
160 * Gets the HTTP host. | |
161 * | |
162 * The host is always lowercased because it must be treated case-insensitive. | |
163 * | |
164 * @return string The HTTP host | |
165 */ | |
166 public function getHost() | |
167 { | |
168 return $this->host; | |
169 } | |
170 | |
171 /** | |
172 * Sets the HTTP host. | |
173 * | |
174 * @param string $host The HTTP host | |
175 * | |
176 * @return $this | |
177 */ | |
178 public function setHost($host) | |
179 { | |
180 $this->host = strtolower($host); | |
181 | |
182 return $this; | |
183 } | |
184 | |
185 /** | |
186 * Gets the HTTP scheme. | |
187 * | |
188 * @return string The HTTP scheme | |
189 */ | |
190 public function getScheme() | |
191 { | |
192 return $this->scheme; | |
193 } | |
194 | |
195 /** | |
196 * Sets the HTTP scheme. | |
197 * | |
198 * @param string $scheme The HTTP scheme | |
199 * | |
200 * @return $this | |
201 */ | |
202 public function setScheme($scheme) | |
203 { | |
204 $this->scheme = strtolower($scheme); | |
205 | |
206 return $this; | |
207 } | |
208 | |
209 /** | |
210 * Gets the HTTP port. | |
211 * | |
212 * @return int The HTTP port | |
213 */ | |
214 public function getHttpPort() | |
215 { | |
216 return $this->httpPort; | |
217 } | |
218 | |
219 /** | |
220 * Sets the HTTP port. | |
221 * | |
222 * @param int $httpPort The HTTP port | |
223 * | |
224 * @return $this | |
225 */ | |
226 public function setHttpPort($httpPort) | |
227 { | |
228 $this->httpPort = (int) $httpPort; | |
229 | |
230 return $this; | |
231 } | |
232 | |
233 /** | |
234 * Gets the HTTPS port. | |
235 * | |
236 * @return int The HTTPS port | |
237 */ | |
238 public function getHttpsPort() | |
239 { | |
240 return $this->httpsPort; | |
241 } | |
242 | |
243 /** | |
244 * Sets the HTTPS port. | |
245 * | |
246 * @param int $httpsPort The HTTPS port | |
247 * | |
248 * @return $this | |
249 */ | |
250 public function setHttpsPort($httpsPort) | |
251 { | |
252 $this->httpsPort = (int) $httpsPort; | |
253 | |
254 return $this; | |
255 } | |
256 | |
257 /** | |
258 * Gets the query string. | |
259 * | |
260 * @return string The query string without the "?" | |
261 */ | |
262 public function getQueryString() | |
263 { | |
264 return $this->queryString; | |
265 } | |
266 | |
267 /** | |
268 * Sets the query string. | |
269 * | |
270 * @param string $queryString The query string (after "?") | |
271 * | |
272 * @return $this | |
273 */ | |
274 public function setQueryString($queryString) | |
275 { | |
276 // string cast to be fault-tolerant, accepting null | |
277 $this->queryString = (string) $queryString; | |
278 | |
279 return $this; | |
280 } | |
281 | |
282 /** | |
283 * Returns the parameters. | |
284 * | |
285 * @return array The parameters | |
286 */ | |
287 public function getParameters() | |
288 { | |
289 return $this->parameters; | |
290 } | |
291 | |
292 /** | |
293 * Sets the parameters. | |
294 * | |
295 * @param array $parameters The parameters | |
296 * | |
297 * @return $this | |
298 */ | |
299 public function setParameters(array $parameters) | |
300 { | |
301 $this->parameters = $parameters; | |
302 | |
303 return $this; | |
304 } | |
305 | |
306 /** | |
307 * Gets a parameter value. | |
308 * | |
309 * @param string $name A parameter name | |
310 * | |
311 * @return mixed The parameter value or null if nonexistent | |
312 */ | |
313 public function getParameter($name) | |
314 { | |
315 return isset($this->parameters[$name]) ? $this->parameters[$name] : null; | |
316 } | |
317 | |
318 /** | |
319 * Checks if a parameter value is set for the given parameter. | |
320 * | |
321 * @param string $name A parameter name | |
322 * | |
323 * @return bool True if the parameter value is set, false otherwise | |
324 */ | |
325 public function hasParameter($name) | |
326 { | |
327 return array_key_exists($name, $this->parameters); | |
328 } | |
329 | |
330 /** | |
331 * Sets a parameter value. | |
332 * | |
333 * @param string $name A parameter name | |
334 * @param mixed $parameter The parameter value | |
335 * | |
336 * @return $this | |
337 */ | |
338 public function setParameter($name, $parameter) | |
339 { | |
340 $this->parameters[$name] = $parameter; | |
341 | |
342 return $this; | |
343 } | |
344 } |