4 juin 2020 Emilie Sébert

PHP késako ? Comment ça marche ?

PHP Késako ? Une nouvelle semaine, un nouveau mot du jargon informatique. Nous allons nous intéresser dans cette article à un autre langage de programmation utilisé par les développeurs : le PHP (Hypertext Preprocessor). Sans rentrer dans la technique pure et dure, nous vous proposons de comprendre ce qui se cache derrière cet acronyme et de voir dans quels cas ce langage peut être utilisé. Décryptage.

#1 Définition du PHP

Le PHP, pour Hypertext Preprocessor, désigne un langage informatique, ou un langage de script, utilisé principalement pour la conception de sites web dynamiques.Nous reviendrons plus tard sur la notion de « sites web dynamiques » dans la partie dédiée aux usages. Il s’agit d’un langage de programmation sous licence libre qui peut donc être utilisé par n’importe qui de façon totalement gratuite.

Le langage PHP en bref :

– s’utilise le plus souvent côté serveur…
En d’autres termes, il génère du code HTML, CSS ou encore XHTML, des données (en PNG, JPG, etc.) ou d’autres formats comme le WML, le SVG et le PDF. Il fait, depuis de nombreuses années, l’objet d’un développement spécifique et jouit aujourd’hui une bonne réputation en matière de fiabilité et de performances.

– été conçu pour créer des sites « vivants » (on parle de sites dynamiques)…
Blogs, réseaux sociaux, sites e-commerce, API… Avec PHP les développeurs sont en mesure de développer toutes sortes de sites web, d’ailleurs nous parlerons d’applications web dans la mesure où ils exposent souvent des centaines de fonctionnalités.

– est souvent associé au serveur de base de données MySQL et au serveur Apache
Bien qu’il puisse être installé sur la plupart des serveurs HTTP tels que IIS ou nginx. Ce couplage permet de récupérer des informations issues d’une base de données, d’un système de fichiers (contenu de fichiers et de l’arborescence) ou plus simplement des données envoyées par le navigateur afin d’être interprétées ou stockées pour une utilisation ultérieure.

– il utilise peu de commandes pour afficher du HTML…
Les pages PHP contiennent des fragments HTML dont du code qui fait « quelque chose » (dans ce cas, il va afficher « Bonjour, je suis un script PHP ! »). Le code PHP est inclus entre une balise de début qui permettent au serveur web de passer en mode PHP.

– est simple, souple et facile d’accès, mais offre des fonctionnalités avancées pour les experts…
Pragmatique, PHP ne s’encombre pas de théorie et a tendance à choisir le chemin le plus direct. Il nécessite néanmoins, comme tout langage de programmation, une bonne compréhension des principales fonctions usuelles ainsi qu’une connaissance aiguë des problèmes de sécurité liés à ce langage. Sa force est qu’il a permis au fil du temps la résolution aisée de problèmes autrefois compliqués et est devenu par conséquent un composant incontournable des offres d’hébergements. Son utilisation commence avec le traitement des formulaires puis par l’accès aux bases de données. L’accès aux bases de données est aisé une fois l’installation des modules correspondants effectuée sur le serveur.

– est multi-plateforme…
Autant sur Linux qu’avec Windows il permet aisément de reconduire le même code sur un environnement à peu près semblable (prendre en compte les règles d’arborescences de répertoires qui peuvent changer).

– est un langage de programmation sous licence libre qui peut donc être utilisé par n’importe qui de façon totalement gratuite.

#2 Histoire

Le langage PHP a été créé en 1994 par le Canadien et Groenlandais Rasmus Lerdorf. Il est souvent associé au serveur de base de données MySQL et au serveur Apache. Avec le système d’exploitation Linux, il fait partie intégrante de la suite de logiciels libres LAMP.
A l’origine, Rasmus Lerdorf avait créé ce langage pour son propre site web : c’était une bibliothèque logicielle en C dont il se servait pour conserver une trace des visiteurs qui venaient consulter son CV.
Au fil des ajouts de nouvelles fonctionnalités, Rasmus a progressivement transformé la bibliothèque en une implémentation capable de communiquer avec des bases de données et de créer des applications dynamiques et simples pour le Web. En 1995, il décide de publier son code, pour que tout le monde puisse l’utiliser et en profiter. PHP s’appelait alors PHP/FI (pour Personal Home Page Tools/Form Interpreter). En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, ont redéveloppé le cœur de PHP/FI. Ce travail a abouti un an plus tard à la version 3 de PHP, devenu alors PHP: Hypertext Preprocessor. Peu de temps après, Andi Gutmans et Zeev Suraski ont commencé la réécriture du moteur interne de PHP. C’est ce nouveau moteur, appelé Zend Engine — le mot Zend est la contraction de Zeev et Andi — qui a servi de base à la version 4 de PHP.

En 2018, près de 80 % des sites web utilisaient le langage PHP sous ses différentes versions.

Le langage PHP fait l’objet, depuis plusieurs années maintenant, de rassemblements nationaux organisés par l’AFUP9 (l’Association Française des Utilisateurs de PHP), où experts de la programmation et du milieu se retrouvent pour échanger autour du PHP et de ses développeurs. L’association organise ainsi deux évènements majeurs : le « Forum PHP », habituellement en fin d’année, et les « AFUP Day », qui ont lieu au cours du premier semestre, simultanément dans plusieurs villes.

#3 Fonctionnement et usages

Pour comprendre ce qui se cache derrière le langage PHP, il est important de connaître les bases du fonctionnement d’un site web. Qu’est-ce qu’un serveur et un client ? Comment rend-on son site dynamique ?

Les sites statiques et dynamiques

On considère qu’il existe deux types de sites web : les sites statiques et les sites dynamiques.

– Les sites statiques : ce sont des sites réalisés uniquement à l’aide des langages HTML et CSS. Ils fonctionnent très bien mais leur contenu ne peut pas être mis à jour automatiquement : il faut que le propriétaire du site (le webmaster) modifie le code source pour y ajouter des nouveautés. Ce n’est pas très pratique quand on doit mettre à jour son site plusieurs fois dans la même journée ! Les sites statiques sont donc bien adaptés pour réaliser des sites « vitrine », pour présenter par exemple son entreprise, mais sans aller plus loin. Ce type de site se fait de plus en plus rare aujourd’hui, car dès que l’on rajoute un élément d’interaction (comme un formulaire de contact), on ne parle plus de site statique mais de site dynamique.

– Les sites dynamiques : plus complexes, ils utilisent d’autres langages en plus de HTML et CSS, tels que PHP. Le contenu de ces sites web est dit « dynamique » parce qu’il peut changer sans l’intervention du webmaster ! La plupart des sites web que vous visitez aujourd’hui, sont des sites dynamiques.

Rappel : comment fonctionne un site web

Lorsque vous voulez visiter un site web, vous tapez son adresse dans votre navigateur web, que ce soit Mozilla Firefox, Internet Explorer, Opera, Safari ou un autre. Mais ne vous êtes-vous jamais demandé comment faisait la page web pour arriver jusqu’à vous ?

Il faut savoir qu’Internet est un réseau composé d’ordinateurs. Ceux-ci peuvent être classés en deux catégories.

– Les clients : ce sont les ordinateurs des internautes comme vous. Votre ordinateur fait donc partie de la catégorie des clients. Chaque client représente un visiteur d’un site web. Dans les schémas qui vont suivre, l’ordinateur d’un client sera représenté par l’image suivante.

client

– Les serveurs : ce sont des ordinateurs puissants qui stockent et délivrent des sites web aux internautes, c’est-à-dire aux clients. La plupart des internautes n’ont jamais vu un serveur de leur vie. Pourtant, les serveurs sont indispensables au bon fonctionnement du Web. Sur les prochains schémas, un serveur sera représenté par l’image de la figure suivante.

serveur

En d’autres termes : votre ordinateur est appelé le client, tandis que l’ordinateur qui détient le site web est appelé le serveur. Parant de ce principe, comment les deux communiquent-ils ?

C’est justement là que se fait la différence entre un site statique et un site dynamique. Nous allons voir les deux cas ensemble.

Dans le cas d’un site statique, la communication se fait en deux temps. Le schéma suivant l’explique très bien :

1. le client demande au serveur à voir une page web ;

2. le serveur lui répond en lui envoyant la page réclamée.

serveur client

 

La communication est donc plutôt basique :

– « Bonjour, je suis le client, je voudrais voir cette page web. »

– « Tiens, voilà la page que tu m’as demandée. »

Sur un site statique, il ne se passe rien d’autre. Le serveur stocke des pages web et les envoie aux clients qui les demandent sans les modifier.

Dans le cas d’un site dynamique, il y a une étape intermédiaire : la page est générée (cf schéma suivant).

– Le client demande au serveur à voir une page web ;

– le serveur prépare la page spécialement pour le client ;

– le serveur lui envoie la page qu’il vient de générer.

site statique

La page web est générée à chaque fois qu’un client la réclame. C’est précisément ce qui rend les sites dynamiques vivants : le contenu d’une même page peut changer d’un instant à l’autre.

A titre d’exemple, certains sites parviennent à afficher votre pseudonyme sur toutes les pages. Étant donné que le serveur génère une page à chaque fois qu’on lui en demande une, il peut la personnaliser en fonction des goûts et des préférences du visiteur (et afficher, entre autres, son pseudonyme).

Les langages du web

Afin de créer un site web, les développeurs sont amenés à manipuler plusieurs langages dont le PHP. Un petit rappel s’impose…

Pour un site statique : HTML et CSS
Ces deux langages constituent une base incontournable pour tous les développeurs. Nous vous en avons d’ailleurs parlé précédemment sur notre blog. Si vous avez oublié, n’hésitez pas à consulté notre article dédié au langage HTML.

– HTML : c’est le langage à la base des sites web. Simple à apprendre, il fonctionne à partir de balises.
– CSS : c’est le langage de mise en forme des sites web. Alors que le HTML permet d’écrire le contenu de vos pages web et de les structurer, le langage CSS s’occupe de la mise en forme et de la mise en page. C’est en CSS que l’on choisit notamment la couleur, la taille des menus et bien d’autres choses encore.

Ces langages sont la base de tous les sites web. Lorsque le serveur envoie la page web au client, il envoie en fait du code en langage HTML et CSS.

Le problème, c’est que lorsqu’on connaît seulement HTML et CSS, on ne peut produire que des sites statiques… et non des sites dynamiques ! Pour ces derniers, il est nécessaire de manipuler d’autres langages en plus de HTML et CSS.

Pour un site dynamique : PHP et MySQL
Quel que soit le site web que l’on souhaite créer, HTML et CSS sont donc indispensables. Cependant, ils ne suffisent pas pour réaliser des sites dynamiques. Il faut les compléter avec d’autres langages.

C’est justement tout l’objet de ce cours : vous allez apprendre à manipuler PHP et MySQL pour réaliser un site web dynamique.

PHP, comme on l’a vu, est un langage que seuls les serveurs comprennent et qui permet de rendre votre site dynamique. C’est PHP qui « génère » la page web.
Il peut fonctionner seul, mais il ne prend vraiment de l’intérêt que s’il est combiné à un outil tel que MySQL. Nous aborderons cet outil dans un prochain article.

NB: PHP et MySQL sont des logiciels libres. C’est un gage de pérennité : puisque tout le monde peut contribuer à leur développement, il y a peu de risque que les développeurs se désintéressent subitement de PHP et de MySQL du jour au lendemain.

PHP génère du HTML

Les clients sont incapables de comprendre le code PHP : ils ne connaissent que le HTML et le CSS. Seul le serveur est capable de lire du PHP.

Le rôle de PHP est justement de générer du code HTML, code qui est ensuite envoyé au client de la même manière qu’un site statique, comme le montre le schéma suivant.

PHP

PHP est un langage de programmation utilisé sur de nombreux serveurs pour prendre des décisions. C’est PHP qui décide du code HTML qui sera généré et envoyé au client à chaque fois.

C’est du charabia pour vous ? Prenons un exemple. On peut écrire en PHP : « Si le visiteur est membre de mon site et qu’il s’appelle Jérémy, affiche Bienvenue Jérémy sur la page web. En revanche, si ce n’est pas un membre de mon site, affiche Bienvenue à la place et propose au visiteur de s’inscrire. »
Ceci un exemple très basique de site dynamique mais qui illustre parfaitement le fonctionnement de ce langage : selon que vous êtes un membre enregistré ou non, vous ne verrez pas les mêmes choses et n’aurez peut-être pas accès à toutes les sections.

Les concurrents de PHP

Parmi les concurrents de PHP, on peut citer les suivants :

– ASP .NET : conçu par Microsoft, il exploite le framework (c’est-à-dire un ensemble de bibliothèques qui fournissent des services pour les développeurs) .NET bien connu des développeurs C#. Ce langage peut être intéressant si vous avez l’habitude de développer en C# .NET et que vous ne voulez pas être dépaysés.

– Ruby on Rails : très actif, ce framework s’utilise avec le langage Ruby et permet de réaliser des sites dynamiques rapidement en suivant certaines conventions.

– Django : il est similaire à Ruby on Rails, mais il s’utilise en langage Python.

– Java et les JSP (Java Server Pages) : plus couramment appelé « JEE » ou « Java EE », il est particulièrement utilisé dans le monde professionnel. Il demande une certaine rigueur. La mise en place d’un projet JEE est traditionnellement un peu plus longue et plus lourde mais le système est apprécié des professionnels et des institutions. C’est ce qui est utilisé sur le site des impôts français, par exemple.

Quant à PHP, il se démarque de ses concurrents par une importante communauté qui peut vous aider rapidement sur Internet si vous avez des problèmes. C’est un langage facile à utiliser, idéal pour les débutants comme pour les professionnels : Wikipédia et Facebook sont des exemples de sites célèbres et très fréquentés qui fonctionnent grâce à PHP.

En résumé

– PHP est un langage exécuté par le serveur et a été conçu pour créer des sites (applications) dynamiques. Il permet de personnaliser la page en fonction du visiteur, de traiter ses messages, d’effectuer des calculs, etc. Il génère une page HTML.

– PHP est langage de programmation sous licence libre qui peut donc être utilisé par n’importe qui de façon totalement gratuite.

– Il existe deux types de sites web :

==>les sites statiques : réalisés en HTML et CSS, leur contenu ne peut être mis à jour que par le webmaster ;
==>les sites dynamiques : réalisés avec d’autres outils comme PHP et MySQL en plus de HTML et CSS, ils permettent aux visiteurs de participer à la vie du site, de poster des messages… bref, de rendre le site vivant !

– Les visiteurs du site sont appelés les clients. Ils demandent au serveur qui héberge le site de leur transmettre les pages web.

Tagged: