Auteur Auteur

Tutoriel PHP

Dans cette toute première leçon, nous allons déjà définir ce que sont le PHP et le MySQL ainsi que leurs rôles respectifs et allons avoir un premier aperçu de ce qu’on va pouvoir réaliser grâce au PHP et au MySQL.

 

Définition et rôle du PHP

Le terme PHP est l’acronyme de « PHP Hypertext Preprocessor ». Le premier « P » de PHP est en effet lui-même l’abréviation de « PHP », une curiosité qui ne va pas présenter une grande importance pour nous.

Ce langage a été créé en 1994. Sa version stable la plus récente (au 15 juillet 2019) est la version 7.3.7. C’est la version sur laquelle je vais me baser dans ce cours.

Le PHP va nous permettre de créer des pages qui vont être générées dynamiquement. En d’autres mots, grâce au PHP, nous allons pouvoir afficher des contenus différents sur une même page en fonction de certaines variables : l’heure de la journée, le fait que l’utilisateur soit connu et connecté ou pas, etc.

Pour illustrer cela, prenons l’exemple d’un espace client sur un site web e-commerce. Un utilisateur arrive sur un site e-commerce sur lequel il a déjà commandé et crée un espace client. Lors de son arrivée sur le site, il dispose d’un formulaire de connexion à son espace client.

Il va alors devoir fournir des informations (généralement un pseudonyme et un mot de passe) pour pouvoir se connecter et accéder à son espace client. Cet espace client est personnalisé : il va certainement contenir l’historique des commandes de l’utilisateur, son profil avec ses informations de facturation et son adresse de livraison, etc.

Ici, lorsque l’utilisateur rentre ses informations de connexion, celles-ci vont être traitées et analysées en PHP. On va vérifier si les informations sont bonnes et si c’est le cas récupérer des informations spécifiques à cet utilisateur et générer dynamiquement les pages de son espace client avec ces informations.

Lorsqu’un utilisateur fournit des informations comme une adresse, un numéro de téléphone ou passe une commande, les données sont généralement enregistrées dans ce qu’on appelle une base de données. Le PHP va également nous permettre d’aller récupérer des données dans une base de données pour s’en resservir.

De plus, notez que le PHP va s’exécuter côté serveur. Il fait ainsi partie des langages qu’on nomme « server side » en opposition aux langages « client side » qui s’exécutent côté client. Nous expliquerons ces notions en détail dans la prochaine leçon.

 

Sites statiques et sites dynamiques

Les langages de programmation axés web peuvent être catégorisés selon deux grands types de classement :

  • Langages statiques VS langages dynamiques ;
  • Langages avec exécution côté client VS langages avec exécution côté serveur.

Les sites dits statiques se caractérisent par le fait qu’ils sont… statiques : ils ne possèdent ni interaction, ni la capacité de s’adapter aux visiteurs. Le code des différentes pages ne va pas changer en fonction d’un utilisateur ou d’une autre variable. Un site de type “CV” par exemple, ou un site servant simplement à présenter ou à donner des informations sur une chose en particulier vont généralement être des sites statiques car il n’y a aucune interaction ni adaptation dynamique avec le visiteur. Un site créé uniquement en HTML et en CSS par exemple sera toujours statique.

Les sites dynamiques, en revanche, vont pouvoir fournir des pages différentes pour chaque visiteur ou selon différentes contraintes et vont nous permettre d’interagir avec l’utilisateur en lui permettant de nous envoyer des données par exemple. De nombreux langages vont nous permettre de créer des sites dynamiques, chacun avec leurs points forts et leurs faiblesses et leur champ d’application. Dans ce cours, nous nous concentrons sur le binôme certainement le plus connu parmi ces langages : le PHP qui va être utile pour tout ce qui est calcul / traitement des données et le MySQL qui va nous servir à gérer nos bases de données.

Nous reparlerons de la distinction client / serveur dans la prochaine leçon. Ici, vous pouvez retenir qu’un site web créé uniquement avec des langages qui s’exécutent côte client sera statique tandis qu’un langage créé avec des langages qui s’exécutent côté client et des langages qui s’exécutent côté serveur sera généralement dynamique.

 

Définition et rôle du MySQL

Le MySQL est un système de gestion de bases de données relationnelles. Une base de données est un ensemble structuré de données. Les données vont pouvoir être des informations clients (nom, adresse, mot de passe, etc.), la liste des commentaires de notre blog, le texte de nos articles, etc.

Le problème ici est qu’on ne va pas directement pouvoir interagir avec les bases de données car les données sont stockées d’une manière illisible pour un humain. Pour manipuler les données stockées dans les bases de données, nous allons devoir utiliser un langage de bases de données.

Le langage de bases de données le plus célèbre est le SQL. SQL est l’acronyme de Structured Query Language (Langage de Requêtes Structurées).

Le système de gestion de bases de données MySQL utilise le langage SQL pour la manipulation des données des bases de données.

Les avantages du MySQL sont sa simplicité d’utilisation, sa fiabilité et ses performances en plus du fait qu’on va pouvoir gérer plusieurs types de bases de données différentes si besoin avec MySQL et qu’on va pouvoir l’utiliser conjointement avec PHP.

Je sais que ces notions peuvent être complexes à envisager pour un débutant. Prenons donc un exemple concret. Imaginons que nous voulions créer un site sur lequel les utilisateurs vont pouvoir s’inscrire et s’identifier.

Nous allons créer nos formulaires d’inscription en HTML et allons ensuite récupérer les données des formulaires en PHP. Ici, nous allons vouloir enregistrer ces données dans une base de données. Une base de données n’est pas un objet mystique : ce n’est ni plus ni moins qu’un fichier.

Pour le moment, notre base de données n’existe pas. Nous allons donc devoir la créer. Pour cela, nous avons deux façons de faire : soit on passe par une application spécialisée comme PhpMyAdmin (dont nous reparlerons plus tard), soit on envoie nos requêtes SQL depuis un fichier de code.

Pour faire cela, nous allons utiliser une extension PHP (Comme PDO ou MySQLi par exemple) qui va nous permettre de coder en MySQL.

Dans notre code MySQL, nous allons écrire différentes requêtes SQL qui vont nous permettre de créer notre base de données et d’enregistrer les données dedans.

Notre base de données est ici créée en utilisant du MySQL : cette base va donc être une base MySQL. Cela signifie que c’est ce système de gestion qui s’occupe de créer notre fichier « base de données », qui va ordonner les données et qui va le sécuriser.

Notez par ailleurs que le MySQL est un système de gestion de bases de données dit « relationnel » car les informations ne vont pas être toutes stockées au même endroit mais plutôt dans plusieurs compartiments appelés « tables » qui vont pouvoir communiquer entre elles.

L’idée principale à retenir ici et ce que je veux que vous compreniez est que nous ne pouvons pas créer ni manipuler de bases de données sans système de gestion de bases de données.

 

Pourquoi utiliser le PHP et le MySQL ?

Contrairement au HTML et au CSS qui sont de véritables standards, le PHP et le MySQL ont de nombreux concurrents : Python, Ruby voire JavaScript pour le PHP et PostGreSQL, Microsoft SQL Server ou encore MariaDB pour le MySQL pour ne citer qu’eux.

Pourquoi préférer le couple PHP / MySQL aux langages concurrents ? Concrètement, il n’y a pas de raison « absolue » au sens où les alternatives citées sont également des langages performants et qui possèdent certains avantages comme certains inconvénients par rapport au PHP et au MySQL.

Cependant, si le couple PHP / MySQL reste de loin le plus célèbre et le choix de référence lorsqu’on veut créer des sites dynamiques et stocker des données, c’est pour de bonnes raisons.

Le premier avantage du PHP concerne la structure de ce langage : c’est un langage à la fois très simple d’accès pour des débutants qui pourront rapidement comprendre sa syntaxe de base et réaliser leurs premiers scripts et qui va également supporter d’un autre côté des structures très complexes.

Ensuite, le PHP est un langage Open Source et donc gratuit. Il est bon de le noter car cela n’est pas forcément automatique même si les utilisateurs du web ont l’habitude du « tout gratuit ». Le PHP est également reconnu et supporté de manière universelle : il va fonctionner quasiment partout et avec l’immense majorité des architectures techniques.

Enfin, le PHP se distingue par ses performances et sa solidité : comme le langage est Open Source, n’importe qui peut contribuer à son évolution, ce qui fait qu’il est sans cesse perfectionné et qu’il ne sera à priori jamais abandonné. En outre, le PHP possède de bonnes performances d’exécution en termes de rapidité et est un langage sûr : les rares failles jamais détectées dans le langage ont toujours été corrigées dans les 24h.

Les systèmes de gestion de base de données sont également nombreux, quoiqu’ils se basent aujourd’hui pour la plupart sur du SQL standard. J’ai choisi dans ce cours d’utiliser le MySQL car c’est encore une fois le choix le plus populaire parmi les développeurs et cela pour de bonnes raisons.

Tout d’abord, il va être totalement compatible avec PHP et utilise une syntaxe SQL standard ce qui facilitera les opérations si un jour vous devez changer de système de gestion de bases de données. Ensuite et enfin le MySQL est à la fois simple d’utilisation, très robuste et offre d’excellente performances que cela soit pour une petite ou pour une grosse structure.