Getter et Setter PHP dans VSCode
Implémentez sans effort des Getters et Setters PHP sécurisés dans VSCode. Découvrez les bonnes pratiques pour les propriétés privées de classe et utilisez l'extension recommandée pour les générer instantanément.
Traduction automatique
Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.
Cet article fait partie de la série VSCode — astuces, extensions et raccourcis :
- Le folding Markdown ne fonctionne pas
- Démarrer vscode depuis github.com
- Le sticky scroll dans vscode
- La fonctionnalité Autosave dans VSCode
- L'extension Error Lens pour VSCode
- L'extension CodeSnap pour VSCode
- Exporter la liste des extensions installées dans VSCode
- Les curseurs multiples dans vscode
- Getter et Setter PHP dans VSCode
- Travailler avec les regions dans VSCode
- Utiliser la police JetBrains Mono dans vscode
- Todo Tree dans VSCode
- Ai-je besoin de VSCode sur ma machine pour l'utiliser ?

Cet article plaide pour des propriétés de classe PHP privées, accessibles uniquement via des getters/setters (afin de pouvoir valider les valeurs, par exemple refuser un prix négatif), et présente l'extension VSCode PHP Getters & Setters qui les génère automatiquement via un clic droit sur la propriété — supprimant l'excuse selon laquelle les écrire serait fastidieux.
Parce que vous êtes un excellent développeur, vous n'autorisez personne à accéder directement aux propriétés de votre classe, mais uniquement via un getter ou un setter.
Autrement dit, dans votre classe PHP, vous n'avez pas de propriétés public (c'est le diable) mais exclusivement des protected ou mieux, des private.
Et grâce aux getters et setters, vous permettez à d'autres objets d'interagir avec vos propriétés privées en les lisant (getters) ou en modifiant leurs valeurs (setters).
Rector peut repérer les endroits où une propriété aurait dû être privée dès le départ, et Tabnine devinera souvent le setter complet dès que vous commencez à taper private function set.
Certains diront « Oui, mais c'est fastidieux d'écrire ces fonctions ». Pas du tout.
L'extension en action
Faites un clic droit sur une propriété, choisissez une action, et le code du getter/setter est généré pour vous :


Plus d'excuse pour les ignorer — l'extension PHP Getters & Setters tape à votre place.
Le mauvais scénario
<?php
namespace Cavo;
class Product{ public string $name = ''; public float $price = 0;}Ce fichier définit une classe Product simple dans l'espace de noms Cavo. La classe contient deux propriétés publiques : name pour stocker le nom du produit et price pour stocker son prix.
Comme vous le voyez, $name est public, donc je peux écrire des choses comme ci-dessous et c'est... OK.
$product = new Product();
$product->name='coMPuteR';
$product->price=-10;
Par OK, je veux dire : bon, j'ai utilisé un mélange de minuscules et de majuscules pour le nom et, bon, j'ai dit que je vendais des ordinateurs à -10 €. C'est OK parce que je ne fais aucune validation sur les valeurs, et c'est très mauvais.
En utilisant un setter (une fonction appelée quand la propriété est initialisée), je peux vérifier la valeur et corriger la casse par exemple, ou refuser un prix négatif.
La bonne approche
Créons notre classe avec des propriétés privées :
<?php
namespace Cavo;
class Product{ private string $name = ''; private float $price = 0;
public function __construct() { }}On définit une classe Product dans l'espace de noms Cavo avec deux propriétés privées : name (chaîne de caractères) et price (nombre décimal). Le constructeur est vide pour l'instant, ce qui signifie que les instances seront créées sans initialisation particulière des propriétés.
Donc, pour chaque propriété, vous devez écrire une fonction appelée Getter pour lire son contenu et une autre appelée Setter pour la modifier. Ça pourrait être pénible, mais ça ne l'est pas, grâce à l'extension présentée en haut de cet article : faites juste un clic droit sur une propriété, choisissez l'action souhaitée et lancez-la.
Maintenant, je peux écrire :
$product = new Product();
$product->setName('coMPuteR');
$product->setPrice(-10);
Et le code qui utilise la classe :
//highlight-next-linepublic function getName(): string{ return $this->name;}
//highlight-next-linepublic function setName(string $name): self{ // Force the product name to be written in lowercase $this->name = strtolower($name);
return $this;}
//highlight-next-linepublic function getPrice(): float{ return $this->price;}
//highlight-next-linepublic function setPrice(float $price): self{ if ($price < 0) { throw new \Exception("Negative prices are not correct; please review your code"); }
$this->price = $price;
return $this;}Ce code définit des accesseurs et mutateurs (getters et setters) pour gérer deux propriétés d'un produit : son nom et son prix. Les setters appliquent des règles métier : le nom est converti en minuscules et le prix ne peut pas être négatif.
Laisser l'éditeur générer ce code répétitif est une façon de garder votre PHP propre. Le laisser vérifier votre code en est une autre : Développement PHP dans un devcontainer avec des outils de qualité de code préinstallés met en place un environnement prêt à l'emploi avec les linters et l'analyse statique déjà configurés.
Cet article fait partie de la série VSCode — astuces, extensions et raccourcis :
- Le folding Markdown ne fonctionne pas
- Démarrer vscode depuis github.com
- Le sticky scroll dans vscode
- La fonctionnalité Autosave dans VSCode
- L'extension Error Lens pour VSCode
- L'extension CodeSnap pour VSCode
- Exporter la liste des extensions installées dans VSCode
- Les curseurs multiples dans vscode
- Getter et Setter PHP dans VSCode
- Travailler avec les regions dans VSCode
- Utiliser la police JetBrains Mono dans vscode
- Todo Tree dans VSCode
- Ai-je besoin de VSCode sur ma machine pour l'utiliser ?





