PHP Manual
/

Utilisation inappropriée du Garbage Collector

2023-02-11T13:35:00.000Z

Vous êtes le développeur d'une importante application patrimoniale, dans laquelle vous introduisez progressivement PHPStan. On commence par le niveau 0, qui est assez difficile, mais on finit par y arriver. Vous passez aux niveaux suivants, où une partie de votre code commence à signaler une variable $lock inutilisée que vous devriez supprimer.

Le code ressemble à ceci :

public function processOrder(int $orderId): void
{
$lock = Lock::createLock('commande-' . $orderId);
// Il y a une certaine logique ici...
}

Vous vous dites qu'il doit y avoir un verrou stocké dans la variable que quelqu'un a oublié de libérer plus tard, ou peut-être que cela se produit dans d'autres méthodes qui sont appelées plus tard. Vous décidez donc de supprimer la variable inutilisée, en ne conservant que l'appel à la méthode statique qui crée le verrou.

Cette décision pourrait-elle provoquer une erreur critique ?

Si oui, pourquoi, et comment le mécanisme original aurait-il pu fonctionner ?

Si non, pourquoi pas, et comment savez-vous que cette opération est toujours sûre ?

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
8.
Status:
All systems normal.
2025