Nevhodné použití Garbage collectoru
Jste vývojář velké legacy aplikace, do které postupně zavádíte PHPStan. Začnete levelem 0, který je poměrně náročný, ale nakonec to zvládnete. Přejdete na další levely, kde vám začne v jedné části kódu hlásit nepoužívanou proměnnou $lock, kterou byste měli odebrat.
Kód vypadá takto:
public function processOrder(int $orderId): void{$lock = Lock::createLock('order-' . $orderId);// Tady je nějaká logika...}
Říkáte si, že je v proměnné určitě uložený zámek, který někdo zapomněl později uvolnit, nebo se to možná děje uvnitř dalších metod, které se provolají později. Rozhodnete se proto nepoužívanou proměnnou odstranit, a zachováte jen volání statické metody, která vytváří zámek.
Může toto rozhodnutí způsobit kritickou chybu?
Pokud ano, proč, a jak mohl původní mechanismus fungovat?
Pokud ne, proč, a jak víte, že to je vždy bezpečná operace?