PHP Manual
/
Senior Entwickler

Ungeeignete Verwendung des Garbage Collectors

11. 02. 2023

Sie sind Entwickler einer großen Legacy-Anwendung, in die Sie schrittweise PHPStan einführen wollen. Man fängt mit Level 0 an, was eine ziemliche Herausforderung ist, aber irgendwann hat man es geschafft. Sie gehen weiter zu den nächsten Ebenen, wo ein Teil Ihres Codes beginnt, eine unbenutzte $lock-Variable zu melden, die Sie entfernen sollten.

Der Code sieht wie folgt aus:

public function processOrder(int $orderId): void
{
$lock = Lock::createLock('Bestellung -' . $orderId);
// Es gibt hier eine gewisse Logik...
}

Sie sagen sich, dass in der Variablen eine Sperre gespeichert sein muss, die jemand vergessen hat, später freizugeben, oder dass es vielleicht in anderen Methoden passiert, die später aufgerufen werden. Sie beschließen also, die unbenutzte Variable zu entfernen und nur den Aufruf der statischen Methode, die die Sperre erzeugt, beizubehalten.

Könnte diese Entscheidung einen kritischen Fehler verursachen?

Wenn ja, warum, und wie könnte der ursprüngliche Mechanismus funktioniert haben?

Wenn nicht, warum nicht, und woher wissen Sie, dass dies immer ein sicherer Vorgang ist?

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