PHP Manual
/
Seniorudvikler

Uhensigtsmæssig brug af Garbage Collector

11. 02. 2023

Du er udvikler af en stor ældre applikation, som du gradvist indfører PHPStan i. Du starter med niveau 0, som er ret udfordrende, men til sidst får du det hele på plads. Du går videre til de næste niveauer, hvor en del af din kode begynder at rapportere en ubrugt $lock-variabel, som du bør fjerne.

Koden ser således ud:

public function processOrder(int $orderId): void
{
$lock = Lock::createLock('ordre-' . $orderId);
// Der er en vis logik her...
}

Du siger til dig selv, at der må være en lås gemt i variablen, som nogen har glemt at frigive senere, eller måske sker det i andre metoder, som kaldes senere. Så du beslutter dig for at fjerne den ubrugte variabel og kun beholde opkaldet til den statiske metode, der opretter låsen.

Kan denne beslutning forårsage en kritisk fejl?

Hvis ja, hvorfor, og hvordan kunne den oprindelige mekanisme have fungeret?

Hvis ikke, hvorfor ikke, og hvordan kan du vide, at det altid er en sikker operation?

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