PHP Manual

ガベージコレクタの不適切な使用について

11. 02. 2023

あなたは大規模なレガシーアプリケーションの開発者であり、そこにPHPStanを徐々に導入しています。レベル0からスタートするので、かなり難易度が高いですが、最終的にはうまくいきます。次のレベルに進むと、コードの一部が未使用の$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