Apprendre PHP (14/19) - Les variables d'environnement

Cette leçon vidéo explique les variables d'environnement en PHP, leur rôle et la différence avec les variables serveur. Elle montre comment accéder à ces variables via la fonction getenv() ou le tableau superglobal $SERVER, et comment lister toutes les variables disponibles avec phpinfo(). Le présentateur passe en revue les entrées les plus courantes de $SERVER (SERVERNAME, SERVERPORT, SERVERPROTOCOL, SERVERADMIN, DOCUMENTROOT, QUERYSTRING, REQUESTURI, PHPSELF, HTTPUSERAGENT, HTTPREFERER, REMOTEADDR, SERVER_ADDR) en donnant des exemples d’affichage. Il décrit également l’utilisation des constantes prédéfinies LINE, FILE, PHPVERSION et PHPOS pour le débogage et l’obtention d’informations système. La vidéo se conclut sur l’importance de ces variables et constantes pour le développement d’applications web en PHP.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon de PHP. Aujourd'hui nous allons voir les variables d'environnement et les constantes prédéfinies. Les variables d'environnement sont des variables créées par le serveur à chaque fois qu'un script PHP est appelé. Ces variables permettent au programme d'avoir des informations sur l'environnement de son exécution. Cet environnement peut être soit de serveur ou de client. Donc, les variables d'environnement contiennent des valeurs qui concernent le client ou le serveur selon la nature de la variable sollicitée. Alors, après tout, les variables d'environnement sont des variables, c'est-à-dire qu'elles commencent par un dollar comme ceci:$. Cette entité par exemple est une variable d'environnement prédéfinie qui permet d'indiquer le nom du navigateur utilisé par le visiteur. Mais cette variable telle qu'elle est déclarée maintenant n'est pas exploitable. En fait, pour pouvoir y accéder, il faut le faire à travers soit la fonction getenv ou bien la variable superglobale SERVER. Dans ce cas, imaginez que je veux afficher le nom du navigateur que j'utilise. Je mettrai donc ceci. Alors, vous avez vu que j'ai placé ma variable d'environnement comme argument de la fonction getenv en tant que chaîne de caractères. Bien sûr, elle a été démunie de son dollar. Dans ce cas, la fonction getenv, elle permet d'évaluer la variable et la fonction echo va l'afficher. Alors quand j'exécute, je vais avoir le résultat suivant. Ici, j'ai un affichage détaillé qui concerne les informations du navigateur de l'utilisateur. Mais je peux faire ceci autrement. Dans ce cas, je vais faire appel à la variable SUPERGLOBAL_SERVER comme ceci. J'exécute maintenant pour voir le résultat et j'ai toujours la même chose. En réalité, les variables d'environnement sont accessibles soit via la fonction getenv ou bien via le tableau associatif SUPERGLOBAL_SERVER. Sachez qu'en général, on confond les variables d'environnement et variables serveur. Il ne s'agit pas vraiment de la même chose car les variables serveur sont beaucoup plus nombreuses que les variables d'environnement. Cependant, la variable superglobale $_SERVER peut accéder à toutes les variables d'environnement existantes. Alors pour faire simple, on va toujours utiliser cette notation comme ceci, c'est-à-dire le superglobal $_SERVER. Les variables d'environnement et les variables serveur sont très nombreuses, donc pour avoir une idée de toutes ces variables, il faut exécuter la fonction phpinfo. Actualisons maintenant la page. Comme on l'a déjà vu, la fonction phpinfo permet de lister plein d'informations qui concernent le moteur PHP et le serveur qui le supporte. Donc maintenant on va aller dans le bloc environnement. On va juste mettre Ctrl+F environment comme ça. Et voilà, donc là nous avons toutes les variables d'environnement qui sont supportées par mon serveur. Il faut savoir qu'il y a des serveurs qui peuvent supporter encore plus de variables, voire moins. C'est-à-dire que ça dépend relativement de l'environnement de l'exécution du script. Là par exemple, HTTP_HOST qui permet de retourner le nom de domaine du serveur. HTTP_CONNECTION qui permet de vérifier est-ce que c'est une connexion maintenue ou non, ce qu'on appelle keepalive. Ça veut dire pour ne pas multiplier les connexions et passer toutes les requêtes via une seule et unique connexion, etc. Donc pratiquement il y a plein de variables. Et si vous voulez voir les variables de serveur, on va mettre PHP_VARIABLE comme ça. Voilà, donc là ça donne les variables serveur. Vous avez vu que HTTP_HOST et HTTP_CONNECTION figurent dans la liste des variables d'environnement et pourtant elles sont encore reprises ici dans la partie qui est dédiée au serveur. Et là on constate qu'il y a encore plus de variables que ce que nous avons vu tout à l'heure. Bon, maintenant il est temps de découvrir les variables les plus importantes et les plus pratiques quand on veut créer une application ou bien un site web. On va retourner dans le code. On va mettre echo server et on va commencer par la première variable qui est SERVER_NAME qui permet de retourner le nom du serveur qui exécute le script. Donc quand j'exécute, ça m'affiche localhost parce que le serveur il s'appelle localhost dans mon cas. Il y a aussi SERVER_PORT. Qui affiche par défaut le port 80 utilisé pour l'écoute des requêtes HTTP. Et si vous passez via une connexion HTTPS, alors le port par défaut qui sera retourné, c'est 443. Il y a aussi server_protocol qui retourne le protocole utilisé et sa version. Dans ce cas, c'est HTTP/1.1. Il y a aussi ServerAdmin qui retourne l'adresse email de l'administrateur du serveur web. Généralement, cette adresse est fournie dans la définition du vhost du serveur, c'est-à-dire au moment de la création du serveur, qu'il soit mutualisé ou bien dédié. Généralement, il y a toujours un administrateur qui le gère. Il y a aussi DocumentRoot. Qui me retourne le dossier d'hébergement sur mon serveur. C'est-à-dire que ce dossier-là, /Applications/MAMP/htdocs, est le dossier d'hébergement par défaut qui est proposé dans ce cas par MAMP et qui peut changer bien sûr d'un serveur à un autre, voire d'une plateforme de développement à une autre. Il y a aussi query_string. Query string permet de récupérer tous les paramètres passés via le GET et l'afficher en tant que chaîne de caractères. Je mettrai par exemple ici id=12 et nom=abc. Quand j'exécute, maintenant ça m'affiche les paramètres que j'ai passés en tant que GET, à savoir dans ce cas id=12 et nom=abc. Des fois c'est pratique parce que si vous avez une page qui contient beaucoup de paramètres GET qui sont passés et que vous voulez rediriger votre navigateur à la même page tout en conservant ces paramètres en entier, Dans ce cas, il faut stocker ces paramètres quelque part et la meilleure solution c'est de les récupérer via la variable d'environnement QUERY_STRING comme ceci. Il y a aussi request->uri qui retourne dans ce cas l'adresse de la page avec tous les paramètres qu'elle contient. À commencer de la racine, donc tuto/php dans ce cas, index.php c'est le nom de la page courante avec les paramètres GET que j'ai passés. Il y a aussi PHP_SELF qui retourne le nom de la page qui exécute le script. Dans ce cas, c'est index.php. Il y a HTTP_USER_AGENT qu'on a vu tout à l'heure qui retourne le nom complet du navigateur utilisé par l'utilisateur et le nom du système d'exploitation qui le supporte également. Il y a aussi HTTP referrer qui permet de retourner le nom de la page qui a redirigé vers la page courante. Donc dans ce cas, quand je fais ça, bon, ça m'affiche une erreur parce qu'il n'y a aucune page que j'ai visitée avant. Mais j'ai prévu une autre page qui s'appelle ref.html. Je vais visiter cette page et quand je cliquerai sur ce lien, je vais aller sur la page index.php. Donc je vais mettre ref.html. Et quand je clique ici, donc maintenant hrefref me retourne la valeur suivante, donc c'est l'URL complète de la page qui a redirigé vers la page courante. Bon, généralement ça c'est utilisé pour connaître un petit peu les sources du trafic, c'est-à-dire les différentes pages qui sont visitées par l'utilisateur avant de se rendre sur mon site web ou bien sur une page particulière de mon site web. Il y a aussi remote address qui retourne dans ce cas l'adresse IP du client, c'est-à-dire l'adresse IP de l'utilisateur. Et là, ça me retourne l'adresse de la boucle locale en IPv6, donc ::1. Si je mets une adresse réelle, d'ailleurs je vais voir mon adresse IP. C'est ça. Donc maintenant je vais exécuter le script via cette adresse et ça me retourne l'adresse IP v4 que j'utilise dans ce cas. Alors cette information permet généralement de voir les utilisateurs d'où ils viennent, c'est-à-dire de les localiser via leur adresse IP. Il y a aussi server_address qui retourne dans ce cas l'adresse IP du serveur. J'actualise, ça donne la même chose, c'est normal parce que je me connecte en local, du coup je suis en même temps un client et un serveur. Maintenant nous allons voir les constantes prédéfinies en PHP. Par exemple la constante __LINE__. Donc il y a 2 underscores, LINE en majuscule et 2 underscores à la fin. J'exécute et ça m'affiche le numéro de la ligne concernée, dans ce cas c'est la ligne 2. Imaginez par exemple que j'ai fait ça et que j'exécute, donc ça m'affiche la ligne 4. Alors généralement cette constante sert au débogage afin de mieux se localiser au sein d'un code, surtout si vous avez une erreur que vous n'arrivez pas à identifier. Dans ce cas, il suffit d'exécuter echo $line et ça vous affiche directement la ligne qui peut éventuellement contenir l'erreur concernée. Il y a aussi file comme ceci, donc toujours avec 2 sous-tirets au début et à la fin. Quand j'exécute, ça m'affiche le nom du fichier courant à partir de la racine. Donc ça commence de /Applications et ça finit à index.php. Il y a aussi echo PHP_VERSION pour voir la version du PHP utilisée. Dans ce cas, ça m'affiche la version 7.0. Bien sûr, ces informations, on peut aussi les retrouver via phpinfo. Il y a aussi PHPOS qui indique le nom du système d'exploitation qui supporte le serveur dans ce cas. Donc quand j'exécute, alors dans mon cas ça m'affiche Darwin. C'est le système d'exploitation qui sert de base de macOS. Et si vous exécutez votre script sur Windows, ça vous affiche éventuellement Win NT. Sur Linux, bon ça affiche Linux, etc. Il y a d'autres constantes PHP, mais moi je me contente de vous montrer celles qui sont les plus utilisées. On se contente de ça pour cette séance. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









