Symfony 7 : Découvrez les nouveautés majeures du framework
Cette version majeure apporte plus de 450 nouvelles fonctionnalités et nécessite PHP 8.2 ou supérieur.
Command Profiler : Debuggez vos commandes
Le Command Profiler est une fonctionnalité révolutionnaire qui collecte automatiquement des informations lors de l'exécution de vos commandes. Disponible pour toutes les commandes, y compris les vôtres !
$ php bin/console --profile app:my-command
Cette fonctionnalité vous permet d'introspecter et de déboguer vos commandes personnalisées avec la même puissance que le profiler web.
📖 Documentation : Command Profiler
Request Data Mapper : Mapping automatique des données
Le Request Data Mapper révolutionne la gestion des données entrantes en mappant automatiquement les données de requête vers vos objets DTO typés et validés.
use Symfony\Component\HttpKernel\Attribute\MapRequestPayload;
class ProductApiController
{
public function __invoke(
#[MapRequestPayload] ProductReviewDto $review,
): Response {
// Ici, $review est un objet entièrement typé et validé
// représentant les données de la requête Symfony
}
}
Plus besoin de mapper manuellement les données - Symfony s'en charge automatiquement !
📖 Documentation : Request Data Mapper
AssetMapper : Frontend moderne sans build
L'AssetMapper vous permet de construire un frontend de pointe en exploitant les standards web modernes comme les modules ECMAScript (ESM), les importmaps et le preloading, sans build complexe ni configuration Node.
Installation simple
$ composer require symfony/asset-mapper
$ php bin/console importmap:require js-confetti
Utilisation immédiate
// assets/app.js
import JSConfetti from 'js-confetti';
const jsConfetti = new JSConfetti();
jsConfetti.addConfetti();
C'est tout. Aucun build requis. Rafraîchissez et ça fonctionne !
📖 Documentation : AssetMapper
Entièrement typé
Symfony 7 ajoute des types PHP natifs à toutes les propriétés et valeurs de retour de méthodes. Cela améliore :
- La gestion d'erreurs
- Le débogage
- L'auto-complétion dans votre IDE
Profiler redesigné
Le Profiler que vous connaissez et aimez, mais avec un look moderne et frais. Une UX et UI améliorées rendront votre expérience de débogage encore plus agréable.
📖 Documentation : Profiler
Locale switcher
Changez la locale de toute l'application avec un simple appel de méthode. Ou exécutez du code avec une locale spécifique sans affecter le reste de l'application.
📖 Documentation : Locale Switcher
Dynamic constraints
Utilisez la nouvelle contrainte When pour appliquer d'autres contraintes conditionnellement, uniquement quand l'expression donnée correspond.
📖 Documentation : Dynamic Constraints
Early Hints
Améliorez les performances perçues de vos sites web et applications en indiquant aux navigateurs quelles ressources télécharger avant même de recevoir le contenu de la réponse.
use Symfony\Component\WebLink\Link;
class HomepageController extends AbstractController
{
#[Route("/", name: "homepage")]
public function index(): Response
{
$response = $this->sendEarlyHints([
new Link(rel: 'preconnect', href: 'https://fonts.google.com'),
(new Link(href: '/main.css'))->withAttribute('as', 'stylesheet'),
(new Link(href: '/app.js'))->withAttribute('as', 'script'),
]);
// ...
}
}
📖 Documentation : Early Hints
Nouveaux composants
Scheduler
Déclenchez et envoyez des messages selon un planning prédéfini.
📖 Documentation : Scheduler
Webhook et RemoteEvent
Définissez vos propres webhooks et répondez aux événements distants.
📖 Documentation : Webhook
HtmlSanitizer
Créez du code HTML sûr et conforme aux spécifications.
📖 Documentation : HtmlSanitizer
Clock
Améliorez la testabilité de votre code sensible au temps.
📖 Documentation : Clock
Attributs PHP
Des attributs PHP intégrés pour configurer les routes, le cache, la sécurité, les templates et les entités. Plus de distractions à éditer des fichiers de configuration séparés.
📖 Documentation : PHP Attributes
Access Tokens
Utilisez des tokens d'accès/bearer pour authentifier les utilisateurs dans vos APIs. Support natif pour les serveurs OpenID Connect.
📖 Documentation : Access Tokens
DatePoint
Une implémentation DateTime moderne qui corrige tous les problèmes des types natifs PHP et fournit une intégration complète avec le composant Clock.
📖 Documentation : DatePoint
Nouvelles intégrations
Intégrez avec plus de services tiers et de services de notification. Au total, Symfony fournit +100 intégrations, incluant Amazon, Microsoft et Google.
📖 Documentation : Integrations