Empêcher les avertissements de dépréciation de crier au loup

Lorsque PHPStan marque une méthode comme dépréciée, on cherche normalement un remplacement. Mais que faire s'il n'en existe aucun ?

Shopware utilisait la balise @deprecated pour annoncer des changements prévus — comme l'ajout d'un nouveau paramètre optionnel. Les outils d'analyse statique traitaient ces balises comme de véritables dépréciations et signalaient chaque appel. Le bruit a augmenté, les développeurs ont commencé à ignorer les avertissements, et les alertes ont perdu de leur valeur. C'est le cas classique du « cri au loup ».

Dans Shopware 6.7.14.0, nous avons séparé les signaux.

  • @deprecated – réservez ceci pour les API qui vont disparaître ou être remplacées. Vous devez migrer votre code.
  • Attributs BC-change – utilisez-les pour les ajustements prévus qui maintiennent l'API en vie, tels que de nouveaux paramètres optionnels ou des types de retour modifiés.

Les nouveaux attributs se trouvent dans Shopware\Core\Framework\Deprecation\BCChange. Ils vous indiquent exactement ce qui va changer et qui est concerné.

Nous les avons divisés en deux groupes :

  • CallSiteCompatibilityChange – affecte le code qui appelle une méthode.
  • ExtenderCompatibilityChange – affecte les classes qui étendent ou surchargent une méthode.

Vous pouvez désormais préparer votre extension pour Shopware 6.8 avant la sortie de la prochaine version majeure.

Exemple : une méthode recevra un nouveau paramètre optionnel. Ajoutez ce paramètre à vos surcharges dès aujourd'hui ; le code fonctionnera sur les versions actuelle et future.

Ce changement restaure la confiance envers les avertissements de dépréciation.

Trois étapes pour les développeurs

  1. Considérez @deprecated comme une correction obligatoire ; l'API va disparaître.
  2. Abandonnez les modèles d'ignorance trop larges qui peuvent masquer de réels problèmes.
  3. Surveillez les attributs BC-change et appliquez dès maintenant de petites mises à jour sûres plutôt qu'une migration massive plus tard.

Source : https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983