私は画像操作ライブラリの開発を開始し、1 つのクールなパッケージでテストと検査を行うために Scrutinizer を使用することにしましたが、全体的なスコアを低下させている統計の一部を制限するためにコードを最適化する方法がわかりません。
以下に示すコードには、「条件: 6」があり、「B」評価にプッシュされます。コードに特別なことは何もありません。パーミッションの欠落や無効なディレクトリの可能性をチェックし、それに応じて例外をスローするため、コードの反応をまったく異なるものにせずにスコアを下げることは非常に困難です。
/**
* Writes the image to a writable source
*
* @param int $compression Compression level 0-9, defaults to 9
*
* @throws \StandardExceptions\IOExceptions\FileNotWritableException
* @throws \StandardExceptions\IOExceptions\DirectoryNotFoundException
* @throws \StandardExceptions\IOExceptions\DirectoryNotWritableException
*/
public function write($compression = 9)
{
$path = $this->getPath();
$directory = $path->getPathInfo();
if (file_exists($path->getPathname()) && !$path->isWritable()) {
throw new FileNotWritableException();
} elseif (!is_dir($directory->getPathname())) {
throw new DirectoryNotFoundException();
} elseif (is_dir($directory->getPathname()) && !$directory->isWritable()) {
throw new DirectoryNotWritableException();
}
$options = [
'png_compression_level' => $compression,
'resolution-x' => $this->getDensity()->getDensity(),
'resolution-y' => $this->getDensity()->getDensity(),
'resolution-units' => $this->mapDensity($this->getDensity()),
];
$this->getImage()->save($path, $options);
}
条件が 3 つしかないのに 6 つの条件がある理由がわかりません。そして、どうすればこれを下げることができるのかわかりません!