PHP : Configuration
La base
La configuration utilisée par PHP peut être définie à différents niveaux, certains paramètres pouvant être écrasés par les couches supérieures (php.ini, host, htaccess, etc…).
Pour obtenir des détails sur la configuration courante, il suffit de passer par phpinfo :
Superglobales
Il existe en PHP des variables superglobales.
La superglobale $GLOBALS encapsule toutes les autres dans un tableau. Si une modification est effectuée sur une autre superglobale, elle sera répercutée dans l’élément correspondant à l’intérieur de $GLOBALS.
Les autres superglobales :
| Clé* | Variable | Contenu | CLI |
|---|---|---|---|
| S | $_SERVER |
Infos sur le serveur et sur l’environnement d’exécution. Ces informations sont transmises à PHP par Apache. Il n’est pas garanti d’y trouver les informations voulues (dépendant du serveur). | Données différentes |
| G | $_GET |
Paramètres transmis par le client dans l’URL (typiquement en GET, mais pas toujours) | indisponible |
| P | $_POST |
Paramètres transmis par le client dans le corps (typiquement par un formulaire en POST) | indisponible |
$_FILE |
Comme $_POST, mais pour les fichiers transmis par formulaire |
indisponible | |
| C | $_COOKIE |
Cookie retransmis par le client en HTTP | indisponible |
$_SESSION |
Informations stockées sur le serveur par des appels à d’autres scripts précédemment (et uniquement si une session a été démarrée). | indisponible | |
$_REQUEST |
Fusion de plusieurs autres superglobales (par défaut : $_GET, $_POST et $_COOKIE, mais cela peut être configuré avec l’élément de configuration request_order) |
||
| E | $_ENV |
Contient les éventuelles variables d’environnements transmises à PHP (depuis un fichier de configuration, par exemple). Si $_ENV n’est pas activée, ces variables sont toujours disponibles via la fonction $var = getenv(); |
* clés utilisées par certains éléments de configurations. Voir plus bas.
Configurations PHP utiles
Configurations PHP utiles pouvant être utilisées sur tout un serveur (php.ini), un site (vhost) ou un dossier (.htaccess) :
| Configuration | Infos | Code |
|---|---|---|
request_order |
Définit dans quel ordre les superglobales sont fusionnées à l’intérieur de Si non défini, utilise Si une même clé existe dans plusieurs superglobales, la dernière (à droite) l’emporte. |
|
variables_order |
Définit quelles superglobales seront définies et dans quel ordre. |