PHP Manual

Неправильне використання сміттєзбірника

11. 02. 2023

Ви розробник великого застарілого додатку, в який ви поступово впроваджуєте PHPStan. Ви починаєте з нульового рівня, що досить складно, але зрештою ви все зробите правильно. Ви переходите до наступних рівнів, де частина вашого коду починає повідомляти про невикористану змінну $lock, яку слід видалити.

Код виглядає так:

public function processOrder(int $orderId): void
{
$lock = Lock::createLock('порядок...' . $orderId);
// Тут є якась логіка...
}

Ви кажете собі, що у змінній має бути блокування, яке хтось забув зняти пізніше, або, можливо, це відбувається всередині інших методів, які викликаються пізніше. Отже, ви вирішили видалити невикористовувану змінну, залишивши лише виклик статичного методу, який створює блокування.

Чи може це рішення призвести до критичної помилки?

Якщо так, то чому і як міг би працювати початковий механізм?

Якщо ні, то чому, і звідки ви знаєте, що це завжди безпечна операція?

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