0.1Qu'est-ce que PHP ? (rôle côté serveur)
PHP (PHP: Hypertext Preprocessor) est un langage de programmation côté serveur conçu spécifiquement pour le Web. Pour comprendre son rôle, il faut distinguer deux mondes. Le côté client (le navigateur de l'utilisateur) exécute du HTML, du CSS et du JavaScript — ce qui s'affiche et s'anime dans la page. Le côté serveur (la machine distante qui héberge le site) exécute la logique : traiter des formulaires, interroger une base de données, générer des pages personnalisées, gérer l'authentification. PHP vit du côté serveur : quand un visiteur demande une page, le serveur EXÉCUTE le code PHP, qui produit du HTML, et c'est ce HTML (pas le code PHP) qui est envoyé au navigateur. Le visiteur ne voit JAMAIS votre code PHP — il ne reçoit que son résultat. C'est une différence fondamentale avec JavaScript côté client (visible dans le navigateur).
Le cycle à retenir absolument est requête → PHP → HTML. (1) L'utilisateur demande une page (il tape une URL ou clique un lien) — c'est la requête. (2) Le serveur web (Apache, Nginx…) reçoit la requête, voit qu'il s'agit d'un fichier .php, et le confie à l'interpréteur PHP qui EXÉCUTE le code (calculs, accès à la base, logique). (3) PHP GÉNÈRE du HTML (le résultat de son exécution), que le serveur renvoie au navigateur, qui l'affiche. À chaque requête, ce cycle se rejoue. Comprendre cela éclaire tout : PHP ne s'exécute pas dans le navigateur mais sur le serveur, à chaque demande de page, pour produire une page souvent PERSONNALISÉE et DYNAMIQUE (différente selon l'utilisateur, l'heure, les données) — par opposition à une page HTML statique (toujours identique). PHP est massivement utilisé sur le Web : une part très importante des sites (dont WordPress, qui propulse une énorme proportion du web) tourne en PHP. C'est un langage accessible (facile à démarrer), pragmatique (fait pour produire des sites web rapidement) et mature (il a beaucoup évolué — les versions modernes, PHP 8+, sont performantes et riches). Il alimente aussi bien de petits sites que de grandes applications (via des frameworks comme Laravel ou Symfony, niveau 4). Comprendre dès maintenant ce qu'est PHP (un langage serveur qui génère du HTML à chaque requête) et le cycle requête → PHP → HTML est la base conceptuelle de tout le reste : chaque page dynamique que vous construirez suivra ce schéma.
Vocabulaire de la section
- PHP
- Langage de programmation côté serveur conçu pour le Web (PHP: Hypertext Preprocessor) ; il s'exécute sur le serveur et génère du HTML envoyé au navigateur.
- Côté serveur vs côté client
- Serveur (PHP) : exécute la logique (formulaires, base, authentification) et génère les pages. Client (navigateur) : affiche le HTML/CSS et exécute le JavaScript.
- Cycle requête → PHP → HTML
- L'utilisateur demande une page → le serveur exécute le code PHP → PHP génère du HTML → le navigateur l'affiche. Ce cycle se rejoue à chaque requête.
- Page dynamique
- Page générée par le serveur, souvent personnalisée (selon l'utilisateur, les données) ; par opposition à une page HTML statique toujours identique.
- Interpréteur PHP
- Le programme qui exécute le code PHP sur le serveur ; le visiteur ne voit jamais le code PHP, seulement le HTML résultant.
Qu'est-ce que PHP, fondamentalement ?
En pratique — Situer PHP et son cycle
- Retenez la nature de PHP : un langage CÔTÉ SERVEUR (exécuté sur le serveur, pas dans le navigateur) qui génère du HTML.
- Mémorisez le cycle requête → PHP → HTML : à chaque demande de page, le serveur exécute le code et renvoie le HTML résultant.
- Comprenez la différence avec JavaScript côté client : le visiteur voit le HTML produit, jamais votre code PHP.
- Situez les usages : pages dynamiques et personnalisées (formulaires, comptes, données), de petits sites aux grandes applications (WordPress, Laravel, Symfony).
Points clés à retenir
- PHP est un langage CÔTÉ SERVEUR : il s'exécute sur le serveur (pas dans le navigateur) et GÉNÈRE du HTML envoyé au client. Le visiteur ne voit jamais le code PHP.
- Cycle fondamental : REQUÊTE (l'utilisateur demande une page) → PHP (le serveur exécute le code) → HTML (généré et affiché). Se rejoue à chaque requête.
- PHP produit des pages DYNAMIQUES et personnalisées (selon l'utilisateur, les données) — vs une page HTML statique toujours identique.
- Massivement utilisé sur le Web (WordPress et une grande part des sites) ; accessible, pragmatique, mature (PHP 8+ performant). De petits sites aux grandes apps (Laravel, Symfony).
Questions fréquentes
PHP est-il dépassé face à des technologies plus récentes comme Node.js ou Python ?
Non, PHP n'est pas dépassé — c'est une idée reçue tenace, mais la réalité est que PHP reste massivement utilisé, a énormément évolué, et demeure un excellent choix pour le développement web. Démêlons cela. D'où vient la mauvaise réputation : PHP a une longue histoire (né en 1994), et ses PREMIÈRES versions avaient des défauts réels (incohérences, facilité à écrire du mauvais code, failles de sécurité chez les débutants). Beaucoup de critiques visent ce PHP ancien — mais le langage a PROFONDÉMENT changé. La réalité du PHP MODERNE : les versions récentes (PHP 7, puis PHP 8+) ont transformé le langage : (1) Performances : PHP est devenu très RAPIDE (les versions 7 et 8 ont apporté des gains de performance spectaculaires — PHP 8 avec le JIT est performant). (2) Fonctionnalités modernes : typage (déclarations de types, types stricts), programmation orientée objet complète, gestion d'erreurs par exceptions, fonctions fléchées, énumérations, attributs, et bien d'autres — PHP moderne est un langage riche et cohérent. (3) Écosystème mature : Composer (gestionnaire de dépendances), des frameworks puissants (Laravel, Symfony), des outils de test (PHPUnit), de qualité de code — un écosystème professionnel complet. (4) Bonnes pratiques établies : les standards (PSR), les patterns, l'architecture propre sont bien documentés. L'usage RÉEL de PHP : (1) PHP propulse une PART ÉNORME du web — WordPress (qui à lui seul fait tourner une immense proportion des sites du monde) est en PHP, ainsi que d'innombrables applications, CMS, boutiques (WooCommerce), et sites d'entreprise. (2) Des frameworks modernes et appréciés (Laravel notamment, très populaire et productif) attirent de nouveaux développeurs. (3) La demande d'emploi PHP reste FORTE (maintenance et développement de l'immense parc existant + nouveaux projets). Comparaison honnête avec Node.js/Python : (1) Ce ne sont pas des « remplaçants » mais des alternatives, chacune avec ses forces. Node.js excelle en temps réel et full-stack JS ; Python en data science/ML et polyvalence ; PHP en développement web pragmatique et rapide, avec un écosystème web mûr. (2) Pour le développement WEB (sites, applications, API), les trois sont d'excellents choix — le « meilleur » dépend du contexte, de l'équipe, de l'écosystème. (3) PHP a l'avantage d'être SPÉCIALISÉ pour le web (conçu pour ça), très productif (on construit vite), avec des frameworks matures et un hébergement facile/bon marché (PHP tourne partout). (4) Aucune de ces technologies n'est « morte » ou « dépassée » — ce sont des outils vivants et pertinents. Pourquoi apprendre PHP aujourd'hui : (1) DEMANDE : marché de l'emploi solide (l'immense parc PHP existant à maintenir/faire évoluer, plus les nouveaux projets). (2) WORDPRESS : maîtriser PHP ouvre le développement WordPress avancé (thèmes, plugins) — un marché énorme. (3) PRODUCTIVITÉ : PHP et Laravel permettent de construire des applications web complètes très rapidement. (4) ACCESSIBILITÉ : PHP est facile à apprendre et à héberger, un bon langage pour entrer dans le développement web back-end. (5) TRANSFÉRABILITÉ : les concepts (serveur, HTTP, base de données, MVC, sécurité, API) que vous apprenez en PHP sont universels et se transposent à toute autre technologie. En résumé : PHP n'est PAS dépassé — c'est une idée reçue basée sur son passé. Le PHP moderne (8+) est performant, riche, avec un écosystème mature (Composer, Laravel, Symfony) ; il propulse une part énorme du web (WordPress en tête), la demande d'emploi est forte, et il reste un excellent choix pour le développement web (spécialisé, productif, accessible, facile à héberger). Ce n'est ni un remplaçant ni un concurrent « perdant » face à Node/Python — ce sont des outils différents, tous pertinents. Apprendre PHP est un investissement solide (marché, WordPress, productivité, accessibilité) et vous donne des compétences web transférables. Ne vous laissez pas décourager par les préjugés : PHP est bien vivant, moderne, et très employable.
Quelle différence concrète entre PHP (serveur) et JavaScript (navigateur), et pourquoi ça compte ?
La distinction serveur/client est fondamentale en développement web, et bien la comprendre éclaire tout — car PHP et le JavaScript de navigateur vivent dans des « mondes » différents avec des rôles complémentaires. Les deux mondes : (1) Côté CLIENT (le navigateur de l'utilisateur) : c'est là que s'affiche et s'anime la page. Le HTML (la structure), le CSS (l'apparence) et le JavaScript (l'interactivité dans la page : réagir aux clics, animer, valider un formulaire côté client, mettre à jour l'affichage sans recharger) s'exécutent DANS le navigateur, sur la machine de l'utilisateur. Le code JavaScript client est VISIBLE (l'utilisateur peut le voir dans les outils de développement du navigateur). (2) Côté SERVEUR (la machine distante qui héberge le site) : c'est là que s'exécute la logique « lourde » et sensible : traiter les formulaires, interroger la base de données, gérer l'authentification, générer les pages, appliquer les règles métier. PHP s'exécute ICI, sur le serveur. Le code PHP n'est JAMAIS envoyé au navigateur — seul son RÉSULTAT (le HTML généré) l'est. L'utilisateur ne voit pas votre code PHP. Pourquoi cette distinction COMPTE, très concrètement : (1) Sécurité. Le serveur est CONTRÔLÉ par vous ; le client ne l'est PAS (l'utilisateur peut voir, modifier, contourner tout ce qui se passe côté navigateur). Donc : les opérations SENSIBLES (accès à la base, vérification des mots de passe, règles de sécurité, logique métier confidentielle) doivent être CÔTÉ SERVEUR (PHP), à l'abri de l'utilisateur. Ne JAMAIS faire confiance au côté client pour la sécurité (un utilisateur malveillant peut manipuler le JavaScript, les données envoyées) — c'est un principe capital (on y reviendra en sécurité, section 3-4). Exemple : la validation d'un formulaire côté client (JavaScript) améliore l'expérience (retour immédiat), mais elle NE SUFFIT PAS — il FAUT re-valider CÔTÉ SERVEUR (PHP), car un attaquant peut contourner le JavaScript. (2) Accès aux ressources. Le serveur (PHP) a accès à la BASE DE DONNÉES, aux FICHIERS du serveur, aux systèmes internes — ce que le navigateur ne peut pas atteindre directement (heureusement, pour la sécurité). PHP est donc l'intermédiaire entre le navigateur et ces ressources. (3) Ce qui est visible. Le HTML/CSS/JS client est visible par l'utilisateur ; le PHP (et ce qu'il fait : requêtes SQL, logique) est invisible, côté serveur. Vos secrets (mots de passe de base, clés, logique) restent côté serveur, protégés. (4) Personnalisation et dynamisme. PHP génère des pages DIFFÉRENTES selon l'utilisateur, les données, le contexte (une page de profil personnalisée, un panier, des résultats de recherche) — parce qu'il exécute la logique côté serveur à chaque requête. (5) Complémentarité. PHP (serveur) et JavaScript (client) TRAVAILLENT ENSEMBLE dans une application web moderne : PHP génère les pages et fournit les données (souvent via une API, section 4-4), JavaScript gère l'interactivité et l'affichage dynamique côté navigateur. Ce ne sont pas des concurrents mais des partenaires aux rôles distincts. (Note : JavaScript peut AUSSI tourner côté serveur avec Node.js — mais dans le contexte classique PHP, on parle du JavaScript de navigateur.) Une image : le SERVEUR (PHP) est la « cuisine » d'un restaurant (invisible du client, où l'on prépare, où sont les ingrédients et les recettes secrètes) ; le CLIENT (navigateur) est la « salle » (ce que le client voit et où il interagit). Le serveur prépare (PHP exécute la logique, accède aux ressources), le client consomme (le navigateur affiche le résultat). En résumé : PHP (serveur) exécute la logique sensible et génère les pages, invisible et contrôlé par vous ; le JavaScript client s'exécute dans le navigateur, visible et non fiable. Cette distinction est cruciale surtout pour la SÉCURITÉ (opérations sensibles côté serveur, ne jamais faire confiance au client) et pour comprendre l'architecture web (serveur qui prépare, client qui affiche, les deux complémentaires). Gardez ce modèle mental : c'est le socle de tout le développement web, et il conditionne où vous placez quoi (la logique et la sécurité côté serveur, l'interactivité côté client).