Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

SOMMAIRE

Introduction

  1. Présentation du cours
  2. Introduction au PHP
  3. Mettre en place un env. de travail

Les bases en PHP

  1. Syntaxe de base du PHP
  2. Premières instructions PHP
  3. Introduction aux variables PHP
  4. Types de valeurs et concaténation
  5. Opérations sur les variables
  6. Conditions et opérateurs de comparaison
  7. Les conditions if, if...else et if... elseif... else
  8. Utilisation avancée des conditions
  9. Structures ternaires et switch
  10. Les boucles PHP
  11. Découverte des fonctions
  12. La portée des variables
  13. Les constantes PHP
  14. Les variables tableaux PHP
  15. Tableaux associatifs
  16. Tableaux multidimensionnels
  17. Test n°1

Gestion des dates en PHP

  1. Le timestamp
  2. Obtenir et formater une date
  3. Tester la validité d'une date
  4. Test n°2

Opérations sur les fichiers en PHP

  1. Lire, ouvrir, fermer un fichier
  2. Parcourir et lire un fichier par partie
  3. Créer un fichier et écrire dedans
  4. Ecrire dans un fichier
  5. Les instructions include et require
  6. Test n°3

Les variables superglobales

  1. Découverte des variables superglobales
  2. Les cookies
  3. Les sessions
  4. Test n°4

Les expressions régulières et PHP

  1. Découverte des regex
  2. Les fonctions PHP PCRE
  3. Quantifieurs et options
  4. Classes de caractères
  5. Test n°5

L'orienté objet en PHP

  1. Classes, instances et objets
  2. Propriétés et méthodes
  3. Extension de classe et héritage
  4. Le principe d'encapsulation
  5. La méthode constructeur
  6. L'opérateur de résolution de portée et la surcharge
  7. Constantes, méthodes et propriétés statiques
  8. Les classes et méthodes abstraites
  9. Les interfaces
  10. Les méthodes magiques
  11. Le chainage de méthodes

Notions avancées en POO

  1. Le typage explicite
  2. Les traits
  3. Les closures et les classes anonymes
  4. L'auto-chargement des classes
  5. Le mot clef final
  6. Résolution statique à la volée
  7. Parcourir des objets
  8. Le clonage d'objets

INTRODUCTION AU PHP

Définition et rôle du PHP

PHP est l’abréviation, en anglais, de « PHP Hypertext Preprocessor ». Le premier « P » de PHP est en effet l’abréviation de « PhP », une curiosité qui ne présente pas une grande importance pour nous.

A la différence des langages HTML ou CSS qui s’exécutaient côté client, c’est à dire dans le navigateur même de vos visiteurs, le PHP va s’exécuter côté serveur. Nous allons expliquer cette notion par la suite.

Pour l’instant, retenez que l’on va pouvoir, grâce au PHP, créer des sites dynamiques et interactifs. Par exemple, on va pouvoir charger une page différente pour chaque visiteur demandant l’accès à une URL.

Pour illustrer cela, vous pouvez retenir l’exemple d’un espace client sur un site web : lorsqu’un visiteur fournit ses informations (généralement un pseudonyme et un mot de passe), il peut entrer dans son espace client.

La page correspondant à l’espace client d’un visiteur a donc été générée spécialement pour ce visiteur, à sa demande. Cela va être possible en utilisant du PHP.

Pour cela, on distingue généralement deux types de sites Internet : les sites « statiques » et les sites « dynamiques ».

Les sites dits statiques se caractérisent par le fait qu’ils ne possèdent pas la capacité de s’adapter aux visiteurs : chacune de leurs pages va être exactement la même, quelque soit l’utilisateur y accédant. Avec les langages HTML et CSS, on ne peut créer que des sites statiques.

Les sites dynamiques, en revanche, vont pouvoir charger des pages différentes pour chaque visiteur ou selon différentes contraintes. Pour créer des sites dynamiques, on va pouvoir utiliser le PHP (et le MySQL).

Comprendre la relation client-serveur

Comprendre la différence entre un client et un serveur, ainsi que le rôle de chacun et leur relation va grandement vous aider à comprendre l’utilité de PHP et à quel niveau le PHP agit.

Commençons par parler du Web. Le Web correspond à un réseau mondial de machines interconnectées.

Pour pouvoir se comprendre, toutes ces machines doivent parler la même langue, c’est-à-dire utiliser le même protocole.

Ainsi, le Web repose sur le protocole HTTP, pour HyperText Transfer Protocole (protocole de transfert hypertexte).

Pour utiliser le protocole HTTP, nous allons devoir passer par un navigateur web (Chrome, Safari, etc.).

Lorsque l’on demande à accéder à une page web, on passe ainsi par un navigateur et on utilise le protocole HTTP.

Ce qu’il se passe est finalement assez simple : on commence par taper une adresse sous forme d’URL dans notre navigateur. Lorsqu’on demande à accéder à une page web, on se place en qualité de client.

Ensuite, le navigateur cherche où se trouve le serveur hébergeant la page demandée. Pour cela, il va utiliser un service de DNS (Domain Name Server), qui sont des serveurs permettant d’associer un nom de domaine (pierre-giraud.com par exemple) à une adresse IP unique.

Dès que l’adresse IP est trouvée, le navigateur web envoie une requête au serveur correspondant à l’IP. En d’autres mots, il demande au serveur de lui fournir la page web demandée.

Lorsque le serveur reçoit la requête, il recherche immédiatement le fichier demandé, récupère son contenu, puis le renvoie au navigateur.

Un serveur est une sorte de super ordinateur, fonctionnant 24h/24 et 7j/7 (en théorie), et étant beaucoup plus puissant que nos ordinateurs.

Un serveur dispose de certains logiciels spécifiques et son rôle est de stocker toutes sortes de médias composant les sites (fichiers, images, etc.), et de les rendre accessible pour tout utilisateur à n’importe quel moment, où qu’il soit.

Selon le type de fichier demandé par le client (fichier HTML, fichier PHP, etc.), le serveur ne va cependant pas procéder de la même manière.

En effet, dans le cas d’un fichier HTML par exemple, le serveur se contente de récupérer le fichier et de le renvoyer tel quel au navigateur, qui se chargera ensuite de l’exécuter. C’est pour cela que l’on dit que le HTML est un langage « client-side », c’est-à-dire un langage qui s’exécute côte client.

En revanche, si on demande au serveur l’accès à une page PHP, une étape de plus va être nécessaire. Effectivement, vous devez bien comprendre que votre navigateur web ne peut pas lire du code PHP. Celui-ci devra avant être interprété.

Voilà ce qu’il se passe dans ce cas : le serveur récupère le fichier PHP, puis utilise un interpréteur chargé d’exécuter le code PHP et de ne renvoyer que le résultat sous forme de code HTML (et éventuellement CSS). Une fois le résultat obtenu, le serveur le renvoie au navigateur qui peut l’afficher sans problème.

Ainsi, vous comprenez bien qu’à chaque fois qu’un utilisateur va demander à accéder à un fichier PHP, le serveur va devoir interpréter ce fichier. C’est ce qui fait qu’on va pouvoir renvoyer un fichier différent pour chaque utilisateur.

Illustration de la relation client serveur

Pourquoi utiliser PHP ?

A la différence du HTML et du CSS, qui sont de véritables standards, le PHP possède de nombreux concurrents notamment les langages Python (dont est issu Django) et Ruby (duquel Ruby on Rails tire sa syntaxe).

Si nous étudions le PHP plutôt que ces autres langages dans ce cours, et si le PHP est si souvent cité comme « le » langage server-side à connaître, c’est parce qu’il possède des avantages indéniables.

Le premier avantage du PHP sur ses concurrents est sa facilité d’accès. En effet, le PHP est un langage Open Source et qui est donc gratuit d’utilisation et également assez simple à apprendre au sens où il ne demande pas de prérequis particuliers.

Ensuite, le PHP est reconnu et donc supporté internationalement. Le PHP fonctionne aussi bien sous Mac OS que Windows, Linus ou encore Unix. De plus, le PHP est supporté par quasiment tous les serveurs utilisés aujourd’hui.

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 terme 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.

Chapitre précédent

Chapitre suivant