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