私はいくつかのクラスを書いていますが、成功しないシナリオを適切に処理する方法を知りたいです。たとえば、パラメータとして $_FILES リソースの名前を受け入れるファイルアップロードクラス:
class FileUpload {
private $file;
public function __construct($file) {
$this->file = $file;
}
public function upload() {
if (!isset($_FILES[$this->file])) {
throw new Exception("Reference to non existent resource.");
}
if ($_FILES[$this->file]['error'] !== 0) {
throw new Exception("Resource indicates error.");
}
// All other sorts of checks here, like security checks,
// and then finally moving of the file to it's final destination
}
}
これは正しい形ですか?私の考えでは、開発者が FileUpload の新しいインスタンスを作成するとき、その意図はファイルをアップロードするか、アップロードされなかった理由を知ることであり、このクラスはまさにそれを提供します。また:
1) true (ファイルが適切な形式であるかどうかがテストされ、セキュリティがチェックされ、画像の場合はさらに処理される可能性があります。これで、まさに目的の場所になりました。要するに、必要なものはすべてうまくいきました)
2) 例外 (何か問題が発生しました。メッセージは正確に何を知らせているので、対処することができます。)
これで問題ない場合は、カスタム メッセージで Exception を使用するか、WrongMimeType などのすべてのカスタム例外を作成する必要がありますか?
それが問題であれば、クラスはオープンソースで誰でも利用できるので、その点からも標準化され、開発者にとって使いやすく、既存のソフトウェアに簡単にプラグインできるようにしたいと考えています。