PHP Manual
/
Développeur principal

Utilisation inappropriée du Garbage Collector

11. 02. 2023

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.
2024