new sans parenthèses
PHP 🟢 JuniorDéfinition
Depuis PHP 8.4, on peut chaîner un appel directement sur une instanciation : new Foo()->bar() sans envelopper new Foo() dans des parenthèses. La RFC a été adoptée 25 voix contre 4. La condition : écrire les parenthèses du constructeur ; (new Foo)->bar reste nécessaire sinon.
Analogie
Ouvrir une boîte et prendre l'objet dedans dans le même geste, au lieu de la poser d'abord sur la table.
Exemple de code
// PHP 8.4
$req = new Request()->withMethod('GET')->withUri('/hello');
// Avant : parenthèses obligatoires
$req = (new Request())->withMethod('GET');
// Toujours interdit sans () du constructeur :
// new Request->withMethod('GET');
Cas d'usage
Alléger les builders et objets fluents (requêtes HTTP, configurateurs) instanciés puis configurés d'un trait.
Anti-pattern
Omettre les parenthèses du constructeur : new Foo->bar() reste une erreur de syntaxe.
Termes liés
Fiche mise à jour le 2026-09-27