PHP en 2025 : évolution, JIT et nouvelle syntaxe — qu'est-ce qui va changer ?
\n\nLe monde du développement web ne s'arrête pas. Il y a encore quelques années, beaucoup prédisaient à PHP un oubli proche, mais le langage qui fait fonctionner plus de 75 % de tous les sites, y compris WordPress, Laravel et Symfony, prouve à nouveau sa vitalité. PHP en 2025 n'est plus simplement un « langage de script pour formulaires ». C'est un outil moderne, strictement typé, avec une compilation JIT, des attributs puissants et des fonctionnalités qui étaient auparavant réservées à Go ou Rust.
\n\nDans cet article, nous allons voir quels changements PHP nous attendent dans un futur proche, ce qu'apportera la version 8.4 (et les rumeurs sur PHP 9), comment la syntaxe évoluera et ce que cela signifie pour les développeurs. Que vous écriviez en PHP ou que vous envisagiez tout juste le langage, cet article est pour vous.
\n\nPourquoi PHP ne meurt pas, mais évolue ?
\n\nEn 2024, PHP a pris la 8e place du classement TIOBE, dépassant Swift et Objective-C. La raison n'est pas la nostalgie, mais une véritable évolution. L'équipe de la PHP Foundation et la communauté travaillent activement pour supprimer « l'héritage des années 2000 » et rendre le langage sûr, rapide et pratique.
\n\nLes principaux moteurs des changements :
\n- \n
- Compilation JIT (Just-In-Time) — permet d'exécuter du code PHP presque à la vitesse du C pour certaines tâches. \n
- Typage strict — PHP se rapproche de plus en plus de Java/C# en matière de contrôle des types. \n
- Attributs (Annotations) — remplacement des commentaires DocBlock, prise en charge intégrée des métadonnées. \n
- Performances améliorées — chaque mise à jour apporte un gain de vitesse de 10 à 20 %. \n
PHP 8.4 : qu'est-ce qui est déjà presque prêt ?
\n\nLa version 8.4 est attendue pour fin 2024 - début 2025. Ce n'est pas simplement une « version de correction de bugs ». Voici les principales nouveautés qui entreront dans la version :
\n\n1. Property Hooks (getters/setters pour les propriétés)
\nL'une des fonctionnalités les plus attendues. Vous pourrez désormais déclarer des propriétés calculées sans getters et setters manuels. La syntaxe rappelle Kotlin :
\n\nclass User\n{\n public function __construct(\n private string $firstName,\n private string $lastName\n ) {}\n\n // Property hook — propriété calculée\n public string $fullName {\n get => $this->firstName . ' ' . $this->lastName;\n set(string $value) {\n $parts = explode(' ', $value);\n $this->firstName = $parts[0];\n $this->lastName = $parts[1] ?? '';\n }\n }\n}\n\n$user = new User('Иван', 'Петров');\necho $user->fullName; // Иван Петров\n$user->fullName = 'Анна Смирнова';\n\n\nCela simplifie le travail avec les DTO et les Entity, en supprimant le code standard. Les changements PHP dans le domaine de la POO deviennent de plus en plus élégants.
\n\n2. Compilation JIT améliorée
\nDans PHP 8.0, le JIT était expérimental. D'ici 2025, il deviendra stable et activé par défaut pour la plupart des tâches. On attend un gain de performance dans les opérations intensives en CPU (traitement d'images, chiffrement, sérialisation) allant jusqu'à 30-40 %.
\n\n// Exemple de tâche où le JIT apporte un gain\n$result = 0;\nfor ($i = 0; $i < 1_000_000; $i++) {\n $result += sqrt($i) * sin($i);\n}\necho $result;\n\n\nSous PHP 8.3, ce code s'exécute en ~0,8 sec, sous PHP 8.4 avec JIT — en ~0,5 sec.
\n\n3. Attributs pour les paramètres
\nLes attributs (depuis PHP 8.0) peuvent désormais être appliqués à des paramètres individuels de fonctions et de méthodes. Cela simplifie la validation et le travail avec les conteneurs DI :
\n\nclass Validator\n{\n public function validate(\n #[Required]\n #[MinLength(3)]\n string $username,\n #[Email]\n string $email\n ): bool {\n // Logique de validation\n return true;\n }\n}\n\n\nAuparavant, il fallait écrire un DocBlock ou des classes de validation séparées pour cela. Maintenant, cela fait partie de la syntaxe.
\n\nPHP 9.0 : rumeurs et réalité
\n\nBien que t