MFormations
Modern PHP Engineering

Chapitre 0

00 — Introduction à PHP

00 — Introduction à PHP

Cours 00 — Introduction à PHP

00.1 Histoire de PHP

Les origines (1994-1997)

PHP a été créé en 1994 par Rasmus Lerdorf, un développeur groenlandais. À l'origine, PHP signifiait "Personal Home Page Tools". C'était un ensemble de scripts Perl/C pour suivre les visiteurs de son CV en ligne.

/* Premier code PHP connu — 1994 */
#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("Welcome to the Personal Home Page Tools\n");
    return 0;
}

En 1995, Rasmus publie PHP/FI (Form Interpreter) version 2.0, qui permet déjà de traiter des formulaires HTML.

PHP 3 (1998)

Andi Gutmans et Zeev Suraski réécrivent complètement PHP en 1997. PHP 3 sort en juin 1998. C'est le premier PHP "généraliste", avec le slogan "PHP: Hypertext Preprocessor". Le Zend Engine voit le jour.

PHP 4 (2000)

Sortie en mai 2000, PHP 4 introduit :

  • Zend Engine 1.0
  • Sessions HTTP natives
  • Support de plusieurs serveurs web (ISAPI, APXS)
  • SUPER GLOBALS (GET,_GET, _POST, $_SESSION)

PHP 5 (2004)

PHP 5 est une révolution :

  • Zend Engine 2.0 avec un modèle objet complet
  • PDO (PHP Data Objects) pour l'accès aux bases de données
  • Exceptions (try/catch)
  • Interfaces et classes abstraites
  • __autoload (ancêtre de l'autoloading PSR-4)

PHP 7 (2015)

PHP 7, avec le Zend Engine 3.0 (PHPNG), double les performances :

  • Return type declarations
  • Scalar type declarations
  • L'opérateur null coalescent ??
  • L'opérateur spaceship <=>
  • Anonymous classes
  • Grouped use declarations

PHP 8.0 (2020)

PHP 8.0 est un nouveau bond :

  • JIT (Just-In-Time compilation)
  • Named arguments
  • Attributes (annotations natives)
  • Union types
  • Match expression
  • Nullsafe operator ?->
  • Constructor property promotion
  • str_contains(), str_starts_with(), str_ends_with()

PHP 8.1 (2021)

  • Enums (natives)
  • Fibers (programmation asynchrone)
  • Readonly properties
  • First-class callable syntax
  • Array unpacking with string keys

PHP 8.2 (2022)

  • Readonly classes
  • Disjunctive Normal Form types
  • Random extension (modernisée)
  • Constants in traits
  • Sensitive parameter value redaction

PHP 8.3 (2023)

  • json_validate()
  • Randomizer additions
  • Override attribute
  • Typed class constants
  • Dynamic class constant fetch
  • mb_str_pad(), mb_trim(), mb_lcfirst(), mb_ucfirst()

PHP 8.4 (2024-2026)

  • Property hooks
  • Lazy objects
  • Asymmetric visibility
  • #[Deprecated] attribute
  • Multibyte trim functions
  • PDO Driver specific subclasses
  • New array functions

00.2 Évolution des performances

VersionAnnéePerf (req/s)Nouveauté majeure
PHP 4.02000~500Zend Engine 1
PHP 5.02004~800Zend Engine 2 (OOP)
PHP 5.62014~1500OPcache
PHP 7.02015~4500Zend Engine 3 (PHPNG)
PHP 7.42019~5000Preloading
PHP 8.02020~5500JIT
PHP 8.42024~6500JIT amélioré

00.3 L'écosystème PHP moderne

Frameworks

FrameworkTypeUtilisation
LaravelFull-stack MVC40%+ des sites PHP modernes
SymfonyComposants / Full-stackUtilisé par Drupal, PrestaShop
CakePHPFull-stackLegacy, encore présent
YiiFull-stackPopulaire en Asie
Laminas (Zend)ComposantsMigration enterprise

Outils essentiels

# Composer — Gestionnaire de dépendances
composer require laravel/framework

# PHPUnit — Tests unitaires
vendor/bin/phpunit tests/

# PHP CS Fixer — Style de code
vendor/bin/php-cs-fixer fix src/

# PHPStan — Analyse statique
vendor/bin/phpstan analyse src/

# Psalm — Analyse statique
vendor/bin/psalm

Packages les plus importés

PackageDownloadsUtilité
carbon/carbon1B+Dates
monolog/monolog1B+Logging
guzzlehttp/guzzle500M+HTTP client
doctrine/orm200M+ORM
phpunit/phpunit1B+Tests
vlucas/phpdotenv300M+.env files
spatie/laravel-permission100M+ACL
barryvdh/laravel-debugbar100M+Debug

00.4 PHP dans le monde

Chiffres clés (2025-2026)

  • 77% des sites web utilisent PHP (en partie)
  • 52% des sites utilisent PHP pour le rendu serveur
  • ~500 000 développeurs PHP dans le monde
  • Top CMS : WordPress (43% du web), Drupal, Joomla
  • Top e-commerce : Magento, WooCommerce, Sylius
  • Salaire moyen (France 2025) :
    • Junior : 35-42k€
    • Confirmé : 45-60k€
    • Senior : 60-80k€
    • Architecte : 80-110k€

Entreprises qui utilisent PHP

TypeExemples
Réseaux sociauxFacebook (Hack/HHVM), Pinterest
E-commerceEtsy, Shopify, Magento
CMSWordPress.com, Drupal.org
CloudSlack (anciennement), Wikipedia
SaaSMailchimp, PrestaShop

00.5 Roadmap d'apprentissage

Niveau 1 — Fondations (Mois 1-2)

  • Syntaxe PHP, types, structures de contrôle
  • Programmation orientée objet
  • Composer, autoloading PSR-4
  • PDO, SQL

Niveau 2 — Web (Mois 3-4)

  • MVC avec Laravel ou Symfony
  • CRUD, migrations, templates
  • Sessions, cookies, formulaires
  • Tests unitaires PHPUnit

Niveau 3 — Avancé (Mois 5-6)

  • APIs REST et GraphQL
  • Queues, jobs, events
  • Sécurité (OWASP)
  • Déploiement, CI/CD

Niveau 4 — Architecture (Mois 7-8)

  • Clean Architecture, DDD
  • Design Patterns
  • Performance, caching
  • Architectures microservices

Exercices d'auto-évaluation

  1. Qu'est-ce qui distingue PHP 7 de PHP 5 en termes de performances ?
  2. Citez trois frameworks PHP modernes et leur cas d'usage.
  3. Quel est l'outil de gestion de dépendances en PHP ?
  4. Quelle version de PHP a introduit le JIT ?
  5. Estimez la part de PHP dans le web mondial.

Références

  • php.net/manual/en/history.php
  • wiki.php.net/rfc
  • jetbrains.com/lp/devecosystem-2025/php
  • packagist.org/statistics