Subversion Repositories Applications.framework

Rev

Rev 120 | Rev 148 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 120 Rev 144
Line 2... Line 2...
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
* classe Url, gérant le découpage des paramètres, leurs modification etc...
4
* classe Url, gérant le découpage des paramètres, leurs modification etc...
5
* Traduction et conversion d'une classe (NET_Url2) issue de Pear
5
* Traduction et conversion d'une classe (NET_Url2) issue de Pear
6
*
6
*
7
* PHP Version 5
-
 
8
*
-
 
9
* @category  Class
7
* @category  Php5
10
* @package   Framework
8
* @package   Framework
11
// auteur principal
9
// Auteur principal
12
* @author	Christian Schmidt <schmidt@php.net>
10
* @author	Christian Schmidt <schmidt@php.net>
13
// autre auteurs
11
// Autre auteurs
14
* @author	aurelien <aurelien@tela-botanica.org>
12
* @author	Aurélien PERONNET <aurelien@tela-botanica.org>
-
 
13
* @author	Jean-Pascal MILCENT <jpm@tela-botanica.org>
15
* @copyright 2009 Tela-Botanica
14
* @copyright 2009 Tela-Botanica
16
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
15
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
17
* @license   http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
16
* @license   http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
18
* @version   SVN: $Id: Url.php 120 2009-09-01 12:21:14Z aurelien $
17
* @version   SVN: $Id: Url.php 144 2010-03-02 13:01:18Z jpm $
19
* @link	  /doc/framework/
18
* @link	  /doc/framework/
20
*
19
*
21
*/
20
*/
22
class Url
21
class Url
23
{
22
{
24
	/**
23
	/**
25
	 * Parsing strict dans resoudre() (voir RFC 3986, section 5.2.2). Par défaut
24
	 * Parsing strict dans resoudre() (voir RFC 3986, section 5.2.2). Par défaut
26
	 * à true.
25
	 * à true.
27
	 */
26
	 */
28
	const OPTION_STRICTE		   = 'strict';
27
	const OPTION_STRICTE = 'strict';
Line 29... Line 28...
29
 
28
 
30
	/**
29
	/**
31
	 * Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
30
	 * Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
32
	 */
31
	 */
Line 33... Line 32...
33
	const OPTION_UTILISER_CROCHETS	 = 'use_brackets';
32
	const OPTION_UTILISER_CROCHETS = 'use_brackets';
34
 
33
 
35
	/**
34
	/**
36
	 * URL-encoder les clés des variables dans les requêtes. Par défaut à true.
35
	 * URL-encoder les clés des variables dans les requêtes. Par défaut à true.
Line 37... Line 36...
37
	 */
36
	 */
38
	const OPTION_ENCODER_CLES	  = 'encode_keys';
37
	const OPTION_ENCODER_CLES = 'encode_keys';
39
 
38
 
40
	/**
39
	/**
41
	 * Séparateurs de variables lors du parsing de la requête. Chaque caractère
40
	 * Séparateurs de variables lors du parsing de la requête. Chaque caractère
42
	 * est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
41
	 * est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
Line 43... Line 42...
43
	 * arg_separator.input dans php.ini (par défaut "&").
42
	 * arg_separator.input dans php.ini (par défaut "&").
44
	 */
43
	 */
45
	const OPTION_SEPARATEUR_ENTREE  = 'input_separator';
44
	const OPTION_SEPARATEUR_ENTREE = 'input_separator';
46
 
45
 
Line 53... Line 52...
53
	/**
52
	/**
54
	 * Options par défaut correspondant au comportement de php
53
	 * Options par défaut correspondant au comportement de php
55
	 * vis à vis de $_GET
54
	 * vis à vis de $_GET
56
	 */
55
	 */
57
	private $options = array(
56
	private $options = array(
58
		self::OPTION_STRICTE		   => true,
57
		self::OPTION_STRICTE => true,
59
		self::OPTION_UTILISER_CROCHETS	 => true,
58
		self::OPTION_UTILISER_CROCHETS => true,
60
		self::OPTION_ENCODER_CLES	  => true,
59
		self::OPTION_ENCODER_CLES => true,
61
		self::OPTION_SEPARATEUR_ENTREE  => 'x&',
60
		self::OPTION_SEPARATEUR_ENTREE => 'x&',
62
		self::OPTION_SEPARATEUR_SORTIE => 'x&',
61
		self::OPTION_SEPARATEUR_SORTIE => 'x&');
63
		);
-
 
Line 64... Line 62...
64
 
62
 
65
	/**
63
	/**
66
	 * @var  string|bool
64
	 * @var  string|bool
67
	 */
65
	 */
Line 99... Line 97...
99
 
97
 
100
	/**
98
	/**
101
	 * @param string $url	 une URL relative ou absolue
99
	 * @param string $url	 une URL relative ou absolue
102
	 * @param array  $options
100
	 * @param array  $options
103
	 */
101
	 */
104
	public function __construct($url, $options = null)
-
 
105
	{
102
	public function __construct($url, $options = null) {
106
		$this->setOption(self::OPTION_SEPARATEUR_ENTREE,
103
		$this->setOption(self::OPTION_SEPARATEUR_ENTREE,
107
						 ini_get('arg_separator.input'));
104
						 ini_get('arg_separator.input'));
108
		$this->setOption(self::OPTION_SEPARATEUR_SORTIE,
105
		$this->setOption(self::OPTION_SEPARATEUR_SORTIE,
109
						 ini_get('arg_separator.output'));
106
						 ini_get('arg_separator.output'));
Line 141... Line 138...
141
	 * Retourne le schéma, c.a.d. "http" ou "urn", ou false si aucun schéma n'est
138
	 * Retourne le schéma, c.a.d. "http" ou "urn", ou false si aucun schéma n'est
142
	 * spécifié, i.e. l'url est une url relative
139
	 * spécifié, i.e. l'url est une url relative
143
	 *
140
	 *
144
	 * @return  string|bool
141
	 * @return  string|bool
145
	 */
142
	 */
146
	public function getSchema()
143
	public function getSchema() {
147
	{
-
 
148
		return $this->schema;
144
		return $this->schema;
149
	}
145
	}
Line 150... Line 146...
150
 
146
 
151
	/**
147
	/**
152
	 * @param string|bool $schema
148
	 * @param string|bool $schema
153
	 *
149
	 *
154
	 * @return void
150
	 * @return void
155
	 * @see	getSchema()
151
	 * @see	getSchema()
156
	 */
152
	 */
157
	public function setSchema($schema)
-
 
158
	{
153
	public function setSchema($schema) {
159
		$this->schema = $schema;
154
		$this->schema = $schema;
Line 160... Line 155...
160
	}
155
	}
161
 
156
 
162
	/**
157
	/**
163
	 * renvoie la partie user de la partie infoUtilisateur (partie précédant le premier
158
	 * renvoie la partie user de la partie infoUtilisateur (partie précédant le premier
164
	 *  ":"), ou false si aucune partie infoUtilisateur n'est définie.
159
	 *  ":"), ou false si aucune partie infoUtilisateur n'est définie.
165
	 *
160
	 *
166
	 * @return  string|bool
161
	 * @return  string|bool
167
	 */
-
 
168
	public function getUtilisateur()
162
	 */
169
	{
163
	public function getUtilisateur() {
Line 170... Line 164...
170
		return $this->infoUtilisateur !== false ? preg_replace('@:.*$@', '', $this->infoUtilisateur) : false;
164
		return $this->infoUtilisateur !== false ? preg_replace('@:.*$@', '', $this->infoUtilisateur) : false;
171
	}
165
	}
172
 
166
 
173
	/**
167
	/**
174
	 * renvoie la partie mot de passe de la partie infoUtilisateur (partie après le premier
168
	 * renvoie la partie mot de passe de la partie infoUtilisateur (partie après le premier
175
	 *  ":"), , ou false si aucune partie infoUtilisateur n'est définie (i.e. l'URL ne contient
169
	 *  ":"), , ou false si aucune partie infoUtilisateur n'est définie (i.e. l'URL ne contient
176
	 * pas de "@" en face du nom d'hôte) ou si la partie infoUtilisateur ne contient pas de ":".
170
	 * pas de "@" en face du nom d'hôte) ou si la partie infoUtilisateur ne contient pas de ":".
177
	 *
171
	 *
178
	 * @return  string|bool
-
 
179
	 */
172
	 * @return  string|bool
180
	public function getMotDePasse()
173
	 */
Line 181... Line 174...
181
	{
174
	public function getMotDePasse() {
182
		return $this->infoUtilisateur !== false ? substr(strstr($this->infoUtilisateur, ':'), 1) : false;
175
		return $this->infoUtilisateur !== false ? substr(strstr($this->infoUtilisateur, ':'), 1) : false;
183
	}
176
	}
184
 
177
 
185
	/**
178
	/**
186
	 * Renvoie la partie userinfio, ou false si celle-ci n'existe pas, i.e. si la partie
179
	 * Renvoie la partie userinfio, ou false si celle-ci n'existe pas, i.e. si la partie
187
	 * autorité ne contient pas de "@"
180
	 * autorité ne contient pas de "@"
188
	 *
-
 
189
	 * @return  string|bool
181
	 *
190
	 */
182
	 * @return  string|bool
Line 191... Line 183...
191
	public function getInfoUtilisateur()
183
	 */
192
	{
184
	public function getInfoUtilisateur() {
Line 200... Line 192...
200
	 * @param string|bool $infoUtilisateur infoUtilisateur ou username
192
	 * @param string|bool $infoUtilisateur infoUtilisateur ou username
201
	 * @param string|bool $motDePasse
193
	 * @param string|bool $motDePasse
202
	 *
194
	 *
203
	 * @return void
195
	 * @return void
204
	 */
196
	 */
205
	public function setInfoUtilisateur($infoUtilisateur, $motDePasse = false)
197
	public function setInfoUtilisateur($infoUtilisateur, $motDePasse = false) {
206
	{
-
 
207
		$this->infoUtilisateur = $infoUtilisateur;
198
		$this->infoUtilisateur = $infoUtilisateur;
208
		if ($motDePasse !== false) {
199
		if ($motDePasse !== false) {
209
			$this->infoUtilisateur .= ':' . $motDePasse;
200
			$this->infoUtilisateur .= ':' . $motDePasse;
210
		}
201
		}
211
	}
202
	}
Line 214... Line 205...
214
	 * Renvoie la partie hôte, ou false s'il n'y a pas de partie autorité, c.a.d.
205
	 * Renvoie la partie hôte, ou false s'il n'y a pas de partie autorité, c.a.d.
215
	 * l'URL est relative.
206
	 * l'URL est relative.
216
	 *
207
	 *
217
	 * @return  string|bool
208
	 * @return  string|bool
218
	 */
209
	 */
219
	public function getHote()
210
	public function getHote() {
220
	{
-
 
221
		return $this->hote;
211
		return $this->hote;
222
	}
212
	}
Line 223... Line 213...
223
 
213
 
224
	/**
214
	/**
225
	 * @param string|bool $hote
215
	 * @param string|bool $hote
226
	 *
216
	 *
227
	 * @return void
217
	 * @return void
228
	 */
218
	 */
229
	public function setHote($hote)
-
 
230
	{
219
	public function setHote($hote) {
231
		$this->hote = $hote;
220
		$this->hote = $hote;
Line 232... Line 221...
232
	}
221
	}
233
 
222
 
234
	/**
223
	/**
235
	 * Renvoie le numéro de port, ou false si aucun numéro de port n'est spécifié,
224
	 * Renvoie le numéro de port, ou false si aucun numéro de port n'est spécifié,
236
	 * i.e. le port par défaut doit utilisé.
225
	 * i.e. le port par défaut doit utilisé.
237
	 *
226
	 *
238
	 * @return  int|bool
227
	 * @return  int|bool
239
	 */
-
 
240
	public function getPort()
228
	 */
241
	{
229
	public function getPort() {
Line 242... Line 230...
242
		return $this->port;
230
		return $this->port;
243
	}
231
	}
244
 
232
 
245
	/**
233
	/**
246
	 * @param int|bool $port
234
	 * @param int|bool $port
247
	 *
235
	 *
248
	 * @return void
-
 
249
	 */
236
	 * @return void
250
	public function setPort($port)
237
	 */
Line 251... Line 238...
251
	{
238
	public function setPort($port) {
252
		$this->port = intval($port);
239
		$this->port = intval($port);
253
	}
240
	}
254
 
241
 
255
	/**
242
	/**
256
	 * Renvoie la partie autorité, i.e. [ infoUtilisateur "@" ] hote [ ":" port ], ou
243
	 * Renvoie la partie autorité, i.e. [ infoUtilisateur "@" ] hote [ ":" port ], ou
257
	 * false si celle-ci est absente.
244
	 * false si celle-ci est absente.
258
	 *
-
 
259
	 * @return string|bool
245
	 *
260
	 */
246
	 * @return string|bool
261
	public function getAutorite()
247
	 */
Line 262... Line 248...
262
	{
248
	public function getAutorite() {
Line 282... Line 268...
282
	/**
268
	/**
283
	 * @param string|false $autorite
269
	 * @param string|false $autorite
284
	 *
270
	 *
285
	 * @return void
271
	 * @return void
286
	 */
272
	 */
287
	public function setAutorite($autorite)
273
	public function setAutorite($autorite) {
288
	{
-
 
289
		$this->user = false;
274
		$this->user = false;
290
		$this->pass = false;
275
		$this->pass = false;
291
		$this->hote = false;
276
		$this->hote = false;
292
		$this->port = false;
277
		$this->port = false;
293
		if (preg_match('@^(([^\@]+)\@)?([^:]+)(:(\d*))?$@', $autorite, $reg)) {
278
		if (preg_match('@^(([^\@]+)\@)?([^:]+)(:(\d*))?$@', $autorite, $reg)) {
Line 305... Line 290...
305
	/**
290
	/**
306
	 * Renvoie la partie chemin (chemin) (éventuellement vide).
291
	 * Renvoie la partie chemin (chemin) (éventuellement vide).
307
	 *
292
	 *
308
	 * @return string
293
	 * @return string
309
	 */
294
	 */
310
	public function getChemin()
295
	public function getChemin() {
311
	{
-
 
312
		return $this->chemin;
296
		return $this->chemin;
313
	}
297
	}
Line 314... Line 298...
314
 
298
 
315
	/**
299
	/**
316
	 * @param string $chemin
300
	 * @param string $chemin
317
	 *
301
	 *
318
	 * @return void
302
	 * @return void
319
	 */
303
	 */
320
	public function setChemin($chemin)
-
 
321
	{
304
	public function setChemin($chemin) {
322
		$this->chemin = $chemin;
305
		$this->chemin = $chemin;
Line 323... Line 306...
323
	}
306
	}
324
 
307
 
325
	/**
308
	/**
326
	 * renvoie la chaine de requête (requete string) (sans le premier "?"), ou false si "?"
309
	 * renvoie la chaine de requête (requete string) (sans le premier "?"), ou false si "?"
327
	 * n'est pas présent dans l'url.
310
	 * n'est pas présent dans l'url.
328
	 *
311
	 *
329
	 * @return  string|bool
312
	 * @return  string|bool
330
	 * @see	 self::getVariablesRequete()
313
	 * @see	 self::getVariablesRequete()
331
	 */
-
 
332
	public function getRequete()
314
	 */
333
	{
315
	public function getRequete() {
Line 334... Line 316...
334
		return $this->requete;
316
		return $this->requete;
335
	}
317
	}
336
 
318
 
337
	/**
319
	/**
338
	 * @param string|bool $requete
320
	 * @param string|bool $requete
339
	 *
321
	 *
340
	 * @return void
322
	 * @return void
341
	 * @see   self::setVariablesRequete()
-
 
342
	 */
323
	 * @see   self::setVariablesRequete()
343
	public function setRequete($requete)
324
	 */
Line 344... Line 325...
344
	{
325
	public function setRequete($requete) {
345
		$this->requete = $requete;
326
		$this->requete = $requete;
346
	}
327
	}
347
 
328
 
348
	/**
329
	/**
349
	 * Renvoie le nom du fragment, ou false si "#" n'est pas present dans l'URL.
330
	 * Renvoie le nom du fragment, ou false si "#" n'est pas present dans l'URL.
350
	 *
-
 
351
	 * @return  string|bool
331
	 *
352
	 */
332
	 * @return  string|bool
Line 353... Line 333...
353
	public function getFragment()
333
	 */
354
	{
334
	public function getFragment() {
355
		return $this->fragment;
335
		return $this->fragment;
356
	}
336
	}
357
 
337
 
358
	/**
338
	/**
359
	 * @param string|bool $fragment
-
 
360
	 *
339
	 * @param string|bool $fragment
361
	 * @return void
340
	 *
Line 362... Line 341...
362
	 */
341
	 * @return void
363
	public function setFragment($fragment)
342
	 */
364
	{
343
	public function setFragment($fragment) {
365
		$this->fragment = $fragment;
344
		$this->fragment = $fragment;
366
	}
345
	}
367
 
346
 
368
	/**
347
	/**
369
	 * Renvoie la requete string sous forme d'un tableau de variables telles qu'elles apparaitraient
-
 
370
	 * dans le $_GET d'un script PHP
348
	 * Renvoie la requete string sous forme d'un tableau de variables telles qu'elles apparaitraient
371
	 *
349
	 * dans le $_GET d'un script PHP
372
	 * @return  array
350
	 *
373
	 */
351
	 * @return  array
374
	public function getVariablesRequete()
352
	 */
Line 425... Line 403...
425
	/**
403
	/**
426
	 * @param array $tableau (nom => valeur) tableau
404
	 * @param array $tableau (nom => valeur) tableau
427
	 *
405
	 *
428
	 * @return void
406
	 * @return void
429
	 */
407
	 */
430
	public function setVariablesRequete(array $tableau)
408
	public function setVariablesRequete(array $tableau) {
431
	{
-
 
432
		if (!$tableau) {
409
		if (!$tableau) {
433
			$this->requete = false;
410
			$this->requete = false;
434
		} else {
411
		} else {
435
			foreach ($tableau as $nom => $valeur) {
412
			foreach ($tableau as $nom => $valeur) {
436
				if ($this->getOption(self::OPTION_ENCODER_CLES)) {
413
				if ($this->getOption(self::OPTION_ENCODER_CLES)) {
Line 458... Line 435...
458
	 * @param string $nom
435
	 * @param string $nom
459
	 * @param mixed  $valeur
436
	 * @param mixed  $valeur
460
	 *
437
	 *
461
	 * @return  array
438
	 * @return  array
462
	 */
439
	 */
463
	public function setVariableRequete($nom, $valeur)
440
	public function setVariableRequete($nom, $valeur) {
464
	{
-
 
465
		$tableau = $this->getVariablesRequete();
441
		$tableau = $this->getVariablesRequete();
466
		$tableau[$nom] = $valeur;
442
		$tableau[$nom] = $valeur;
467
		$this->setVariablesRequete($tableau);
443
		$this->setVariablesRequete($tableau);
468
	}
444
	}
Line 469... Line 445...
469
 
445
 
470
	/**
446
	/**
471
	 * @param string $nom
447
	 * @param string $nom
472
	 *
448
	 *
473
	 * @return void
449
	 * @return void
474
	 */
450
	 */
475
	public function unsetVariableRequete($nom)
-
 
476
	{
451
	public function unsetVariableRequete($nom) {
477
		$tableau = $this->getVariablesRequete();
452
		$tableau = $this->getVariablesRequete();
478
		unset($tableau[$nom]);
453
		unset($tableau[$nom]);
479
		$this->setVariablesRequete($tableau);
454
		$this->setVariablesRequete($tableau);
Line 480... Line 455...
480
	}
455
	}
481
 
456
 
482
	/**
457
	/**
483
	 * Renvoie un représentation sous forme de chaine de l'URL
458
	 * Renvoie un représentation sous forme de chaine de l'URL
484
	 *
459
	 *
485
	 * @return  string
460
	 * @return  string
486
	 */
-
 
487
	public function getURL()
461
	 */
488
	{
462
	public function getURL() {
Line 489... Line 463...
489
		// Voir RFC 3986, section 5.3
463
		// Voir RFC 3986, section 5.3
490
		$url = "";
464
		$url = "";
Line 514... Line 488...
514
	 * Renvoie une représentation de cette URL sous forme de chaine normalisée. Utile pour la
488
	 * Renvoie une représentation de cette URL sous forme de chaine normalisée. Utile pour la
515
	 * comparaison d'URLs
489
	 * comparaison d'URLs
516
	 *
490
	 *
517
	 * @return  string
491
	 * @return  string
518
	 */
492
	 */
519
	public function getURLNormalisee()
493
	public function getURLNormalisee() {
520
	{
-
 
521
		$url = clone $this;
494
		$url = clone $this;
522
		$url->normaliser();
495
		$url->normaliser();
523
		return $url->getUrl();
496
		return $url->getUrl();
524
	}
497
	}
Line 525... Line 498...
525
 
498
 
526
	/**
499
	/**
527
	 * Renvoie une instance normalisée de Url
500
	 * Renvoie une instance normalisée de Url
528
	 *
501
	 *
529
	 * @return  Url
502
	 * @return  Url
530
	 */
503
	 */
531
	public function normaliser()
-
 
532
	{
504
	public function normaliser() {
Line 533... Line 505...
533
		// See RFC 3886, section 6
505
		// See RFC 3886, section 6
534
 
506
 
535
		// les cchémas sont insesibles à la casse
507
		// les cchémas sont insesibles à la casse
Line 569... Line 541...
569
	/**
541
	/**
570
	 * Renvoie vrai ou faux suivant que l'instance en cours représente une URL relative ou absolue.
542
	 * Renvoie vrai ou faux suivant que l'instance en cours représente une URL relative ou absolue.
571
	 *
543
	 *
572
	 * @return  bool
544
	 * @return  bool
573
	 */
545
	 */
574
	public function etreAbsolue()
546
	public function etreAbsolue() {
575
	{
-
 
576
		return (bool) $this->schema;
547
		return (bool) $this->schema;
577
	}
548
	}
Line 578... Line 549...
578
 
549
 
579
	/**
550
	/**
Line 582... Line 553...
582
	 *
553
	 *
583
	 * @param Url|string $reference URL relative
554
	 * @param Url|string $reference URL relative
584
	 *
555
	 *
585
	 * @return Url
556
	 * @return Url
586
	 */
557
	 */
587
	public function resoudre($reference)
558
	public function resoudre($reference) {
588
	{
-
 
589
		if (is_string($reference)) {
559
		if (is_string($reference)) {
590
			$reference = new self($reference);
560
			$reference = new self($reference);
591
		}
561
		}
592
		if (!$this->etreAbsolue()) {
562
		if (!$this->etreAbsolue()) {
593
			throw new Exception('L\'URL de base doit être absolue !');
563
			throw new Exception('L\'URL de base doit être absolue !');
Line 653... Line 623...
653
	 *
623
	 *
654
	 * @param string $chemin un chemin
624
	 * @param string $chemin un chemin
655
	 *
625
	 *
656
	 * @return string un chemin
626
	 * @return string un chemin
657
	 */
627
	 */
658
	private static function supprimerSegmentsAPoints($chemin)
628
	private static function supprimerSegmentsAPoints($chemin) {
659
	{
-
 
660
		$sortie = '';
629
		$sortie = '';
Line 661... Line 630...
661
 
630
 
662
		// Assurons de ne pas nous retrouver piégés dans une boucle infinie due à un bug de
631
		// Assurons de ne pas nous retrouver piégés dans une boucle infinie due à un bug de
663
		// cette méthode
632
		// cette méthode
Line 704... Line 673...
704
	 * Renvoie une instance de Url representant l'URL canonique du script PHP
673
	 * Renvoie une instance de Url representant l'URL canonique du script PHP
705
	 * en cours d'éxécution
674
	 * en cours d'éxécution
706
	 *
675
	 *
707
	 * @return  string
676
	 * @return  string
708
	 */
677
	 */
709
	public static function getCanonique()
678
	public static function getCanonique() {
710
	{
-
 
711
		if (!isset($_SERVER['REQUEST_METHOD'])) {
679
		if (!isset($_SERVER['REQUEST_METHOD'])) {
712
			// ALERT - pas d'URL en cours
680
			// ALERT - pas d'URL en cours
713
			throw new Exception('Le script n\'a pas été appellé à travers un serveur web');
681
			throw new Exception('Le script n\'a pas été appellé à travers un serveur web');
714
		}
682
		}
Line 729... Line 697...
729
	/**
697
	/**
730
	 * Renvoie l'URL utilisée pour récupérer la requête en cours
698
	 * Renvoie l'URL utilisée pour récupérer la requête en cours
731
	 *
699
	 *
732
	 * @return  string
700
	 * @return  string
733
	 */
701
	 */
734
	public static function getURLDemande()
702
	public static function getURLDemande() {
735
	{
-
 
736
		return self::getDemande()->getUrl();
703
		return self::getDemande()->getUrl();
737
	}
704
	}
Line 738... Line 705...
738
 
705
 
739
	/**
706
	/**
740
	 * Renvoie une instance de Url representant l'URL utilisée pour
707
	 * Renvoie une instance de Url representant l'URL utilisée pour
741
	 * récupérer la requête en cours
708
	 * récupérer la requête en cours
742
	 *
709
	 *
743
	 * @return  Url
710
	 * @return  Url
744
	 */
711
	 */
745
	public static function getDemande()
-
 
746
	{
712
	public static function getDemande() {
747
		if (!isset($_SERVER['REQUEST_METHOD'])) {
713
		if (!isset($_SERVER['REQUEST_METHOD'])) {
748
			// ALERTE - pas d'URL en cours
714
			// ALERTE - pas d'URL en cours
749
			throw new Exception('Le script n\'a pas été appellé à travers un serveur web');
715
			throw new Exception('Le script n\'a pas été appellé à travers un serveur web');
Line 766... Line 732...
766
	 * @return void
732
	 * @return void
767
	 * @see  self::OPTION_STRICTE
733
	 * @see  self::OPTION_STRICTE
768
	 * @see  self::OPTION_UTILISER_CROCHETS
734
	 * @see  self::OPTION_UTILISER_CROCHETS
769
	 * @see  self::OPTION_ENCODER_CLES
735
	 * @see  self::OPTION_ENCODER_CLES
770
	 */
736
	 */
771
	function setOption($nomOption, $valeur)
737
	function setOption($nomOption, $valeur) {
772
	{
-
 
773
		if (!array_key_exists($nomOption, $this->options)) {
738
		if (!array_key_exists($nomOption, $this->options)) {
774
			return false;
739
			return false;
775
		}
740
		}
776
		$this->options[$nomOption] = $valeur;
741
		$this->options[$nomOption] = $valeur;
777
	}
742
	}
Line 781... Line 746...
781
	 *
746
	 *
782
	 * @param string $nomOption Nom de l'option demandée
747
	 * @param string $nomOption Nom de l'option demandée
783
	 *
748
	 *
784
	 * @return  mixed
749
	 * @return  mixed
785
	 */
750
	 */
786
	function getOption($nomOption)
751
	function getOption($nomOption) {
787
	{
-
 
788
		return isset($this->options[$nomOption])
752
		return isset($this->options[$nomOption])
789
			? $this->options[$nomOption] : false;
753
			? $this->options[$nomOption] : false;
790
	}
754
	}
Line 791... Line 755...
791
 
755