Disponible depuis 2012-09-10 „Adora Belle“.
DokuWiki n'interdit pas l'accès aux super-globales $_POST
, $_GET
et $_REQUEST
. Cependant, nous recommandons fortement de ne pas y accéder directement, mais plutôt d'utiliser notre classe Input. Une instance globale de cette classe est disponible partout sous la forme $INPUT.
Cette classe vous donne un accès sécurisé aux variables de requête, s'assure qu'elles sont correctement initialisées et vous permet de définir des valeurs par défaut.
Pour accéder à une variable dans $_REQUEST
, il suffit d'appeler la méthode appropriée sur $INPUT
. Par exemple, pour accéder à un entier dans $_REQUEST['foo']
, il suffit d'appeler $INPUT->int('foo')
.
Si vous voulez accéder à $_GET
ou $_POST
explicitement, appelez les méthodes sur les membres „ get “ et „ post “ de „ $INPUT “. Par exemple, $INPUT->get->int('foo')
ou $INPUT->post->int('foo')
.
Toutes les fonctions d'accès permettent à un deuxième paramètre de fixer une valeur par défaut. Cette valeur sera retournée lorsque la variable n'a pas été définie ou avait un type incorrect (par exemple, un entier attendu est en fait un tableau à la place). Toutes les fonctions d'accès ont des valeurs par défaut raisonnables correspondant au type de la fonction. Par exemple, int()
renvoie 0
, arr()
renvoie un tableau vide par défaut.
Un troisième paramètre indique à la fonction si un paramètre empty doit également être renvoyé par défaut. Ce troisième paramètre a pour valeur par défaut false
.
Voici quelques exemples pour vous donner une idée du fonctionnement de la classe Input. Pour des informations détaillées, veuillez vous référer à inc/Input.class.php.
global $INPUT; $_REQUEST = array('foo' => '3'); var_dump($INPUT->int('foo')); // attend un entier // int(3) var_dump($INPUT->str('foo')); // attend une chaîne // string(1) "3" var_dump($INPUT->int('bar')); // valeur par défaut standard // int(0) var_dump($INPUT->int('bar',42)); // la définition d'une valeur par défaut explicite // int(42) var_dump($INPUT->bool('foo')); // nous forçons le type quand c'est raisonnable // bool(true) var_dump($INPUT->arr('foo')); // pas de trans-typage dans ce cas // array(0) { // } $_POST = array('foo' => '0', 'bar' => ''); // accédons maintenant à $_POST en essayant le troisième paramètre var_dump($INPUT->post->int('foo', -1)); // int(0) var_dump($INPUT->post->int('bar', -1)); // int(-1) var_dump($INPUT->post->int('foo', -1, true)); // int(-1) var_dump($INPUT->post->int('bar', -1, true)); // int(-1)