İçeriğe geç

Temizleme deseni eksik (ARCH7082)

Anahtar php.performance.dispose-pattern · Önem info · Kategori performance

Bir sınıf kapatılabilir bir kaynağı alan olarak tutuyorsa ancak onu serbest bırakacak bir temizleme metodu sunmuyorsa, sahip olunan kaynaklar asla bırakılmaz. Bir kapatma metodu ekleyin.

<?php
class Logger
{
private $fh;
public function __construct(string $path)
{
$this->fh = fopen($path, 'a');
}
}
<?php
class Logger
{
private $fh;
public function __construct(string $path)
{
$this->fh = fopen($path, 'a');
}
public function close(): void
{
fclose($this->fh);
}
}

Kapatılabilir alan tutan sınıflara bu kaynakları serbest bırakan açık bir close() metodu (veya __destruct) ekleyin.