PARTIE 1 : FONDAMENTAUX ET ENVIRONNEMENT
Formation PHP Moderne 8.4/8.5 - Guide Complet
Cours 1 : INTRODUCTION À PHP
1.1 Rôle de PHP dans le Web Moderne (2025)
Le Contexte Actuel
Par Diane (12 ans d’expérience - Experte Sécurité Web) :
“En 2025, PHP n’est pas mort, contrairement à ce qu’on entend parfois. Au contraire, 77,8% des sites web utilisent PHP côté serveur. WordPress (43% du web), Facebook, Wikipedia, Slack… tous utilisent PHP. La vraie question n’est pas ‘PHP est-il pertinent ?’ mais ‘Utilisez-vous PHP moderne ?’”
Les Chiffres qui Parlent
┌─────────────────────────────────────────────────┐
│ PHP dans le Web - Statistiques 2025 │
├─────────────────────────────────────────────────┤
│ Sites utilisant PHP : 77.8% │
│ WordPress (PHP) : 43% du web │
│ Laravel (framework) : #1 PHP framework │
│ Symfony : Entreprises │
│ PHP 8.x adoption : 68% │
│ PHP 7.x (legacy) : 32% │
└─────────────────────────────────────────────────┘
Pourquoi PHP en 2025 ?
“PHP 8.4 est rapide. Le JIT compiler, introduit en PHP 8.0 et amélioré depuis, rend PHP compétitif avec Node.js ou Go dans de nombreux cas. Les benchmarks montrent des gains de 20-30% de performance par rapport à PHP 7.4.”
Avantages de PHP Moderne :
✅ Écosystème Mature
- Composer : gestionnaire de dépendances (comme npm pour Node.js)
- Laravel, Symfony : frameworks professionnels
- 20+ ans d’outils, bibliothèques, documentation
✅ Hébergement Universel
- Disponible partout (5$/mois → millions/mois)
- Configuration simple
- Shared hosting → VPS → Cloud (AWS, GCP, Azure)
✅ Courbe d’Apprentissage Douce
- Syntaxe intuitive
- Erreurs explicites
- Intégration HTML native
✅ Performance Moderne
- JIT compiler (PHP 8.0+)
- OpCache intégré
- Type system strict
✅ Sécurité Intégrée
- Fonctions de hachage modernes (password_hash, Argon2)
- Protection CSRF, XSS natives
- Mises à jour régulières
PHP vs Alternatives (2025)
| Critère | PHP 8.4 | Node.js | Python | Go |
|---|---|---|---|---|
| Performance | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Écosystème Web | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| Hébergement | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Courbe Apprentissage | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Jobs Disponibles | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| Salaire Moyen | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
1.2 PHP Côté Serveur : Comment Ça Fonctionne
Le Cycle de Vie d’une Requête HTTP
“Comprendre comment PHP s’exécute côté serveur est fondamental. Contrairement à JavaScript qui s’exécute dans le navigateur, PHP génère le HTML avant de l’envoyer au client.”
Schéma Complet
┌──────────────┐ ┌──────────────┐
│ │ 1. HTTP Request │ │
│ NAVIGATEUR │ ──────────────────> │ SERVEUR │
│ (Client) │ │ WEB │
│ │ │ (Apache/ │
└──────────────┘ │ Nginx) │
↑ └──────┬───────┘
│ │
│ 2. Détecte .php
│ │
│ ↓
│ ┌──────────────┐
│ │ Moteur PHP │
│ │ (Zend) │
│ │ │
│ │ - Parse code │
│ │ - Exécute │
│ │ - Génère │
│ │ HTML │
│ └──────┬───────┘
│ │
│ 3. HTTP Response │
│ (HTML généré) │
└──────────────────────────────────────┘
Exemple Concret
Fichier : index.php
<?php
// Ce code s'exécute SUR LE SERVEUR
$heure = date('H:i:s');
$message = "Bonjour, il est " . $heure;
?>
<!DOCTYPE html>
<html>
<head>
<title>Ma Page PHP</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
</body>
</html>
Ce que voit le navigateur (HTML généré) :
<!DOCTYPE html>
<html>
<head>
<title>Ma Page PHP</title>
</head>
<body>
<h1>Bonjour, il est 14:32:15</h1>
</body>
</html>
Points Clés :
- ❌ Le navigateur ne voit jamais le code PHP
- ✅ PHP génère du HTML avant de l’envoyer
- ✅ Chaque rechargement = nouvelle exécution
- ✅ Aucune trace de PHP côté client
Client-Side vs Server-Side
“La différence fondamentale : JavaScript (client) peut être inspecté dans le navigateur. PHP (serveur) est invisible pour l’utilisateur. C’est pourquoi on peut y gérer des secrets, des mots de passe, des connexions BD en toute sécurité.”
| Aspect | PHP (Serveur) | JavaScript (Client) |
|---|---|---|
| Exécution | Serveur web | Navigateur |
| Visible ? | ❌ Non (sécurisé) | ✅ Oui (inspectable) |
| Accès BD | ✅ Direct | ❌ Via API seulement |
| Secrets | ✅ Protégés | ❌ Exposés |
| Performance | Dépend serveur | Dépend client |
| Rechargement | Page entière | Dynamique (AJAX) |
Processus Détaillé
Étape 1 : Requête HTTP
GET /index.php HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0...
Étape 2 : Serveur Web (Apache/Nginx)
- Reçoit la requête
- Détecte l’extension
.php - Passe le fichier au moteur PHP
Étape 3 : Moteur PHP (Zend Engine)
┌─────────────────────────────────────┐
│ 1. Parsing │
│ - Analyse syntaxique │
│ - Vérification erreurs │
│ │
│ 2. Compilation │
│ - Bytecode (opcodes) │
│ - OpCache (mise en cache) │
│ │
│ 3. Exécution │
│ - Variables │
│ - Fonctions │
│ - Génération HTML │
│ │
│ 4. Output │
│ - HTML final │
└─────────────────────────────────────┘
Étape 4 : Réponse HTTP
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 234
<!DOCTYPE html>
<html>...
Prochaine Étape
Dans le Chapitre 2, nous verrons en détail le cycle requête/réponse HTTP et comment PHP interagit avec le client et le serveur.
“PHP n’est pas mort. PHP mal utilisé, oui. PHP moderne ? Vivant et performant.”
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur PARTIE 1 : FONDAMENTAUX ET ENVIRONNEMENT. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.