PHPunlink()
は例外をネイティブにサポートしていないため、そのためのラッパー関数を作成しています。FileNotFoundException
指定されたファイルが存在しないために削除できなかった場合は、スローする必要があります。
このためには、 によってスローされたエラーのunlink()
原因がファイルの欠落によるものか、それ以外の何かによるものかを判断する必要があります。
これは、カスタム削除機能の私のテスト バージョンです。
public function deleteFile($path){
set_error_handler(function($errLevel, $errString){
debug($errLevel);
debug($errString);
});
unlink($path);
restore_error_handler();
}
For $errLevel
and $errString
I get 2 (E_WARNING) and unlink(/tmp/fooNonExisting): No such file or directory
かなり大胆なアプローチは次のようになります。
if( strpos($errString, 'No such file or directory') !== false ) {
throw new FileNotFoundException();
};
質問 1: PHP のバージョンが異なってもエラー文字列が同じであることをどの程度信頼できますか? 質問 2: もっと良い方法はありますか?