0

背景の開示: 私は PHP プロジェクトにしばらく取り組んできましたが、ベスト プラクティス、oop デザイン パターン、新しい php バージョンの機能などを真剣に調べ始めたのはつい最近のことです。

私のコードの多くは、次のようになります。

public function($arg1 = 'default', $arg2 = false)
{
   if(!empty($arg2) && $arg1 != 'default) {
     // do something here
    }
}

私がgithubで見た適切なOOPコードのほとんどすべてと、使用されている引数の存在または正しいタイプをチェックするものはありません。

私の質問は次のとおりです。引数に対して常に冗長なチェックを行うこと、または何か悪い(tm)が発生する可能性がある特定の状況でのみ行うことは、良い習慣であると考えられていますか。

たとえば、SQL クエリを実行して結果を取得した後、私はいつもそうしています if(!empty($results)) //go do stuff

これを行う必要がありますか?私は妄想的ですか?

4

2 に答える 2

2

クラスを使用すると、typehint を介して引数を簡単に確認できます

public function doSomething(My\Super\Cl $cl, array $params){
...
}

時々あなたは引数をチェックすることができますfunc_num_args

私はそれが良い習慣であることに同意します、つまり、それは契約による設計と呼ばれます

于 2013-05-14T20:30:44.600 に答える
1

関数が何をすべきかを事前に定義し、適切な例外処理を行うことをお勧めします。

例 - 私のライブラリを利用するアプリケーションを作成している場合、アプリケーションが何らかのチェックを行うか、ライブラリがチェックを行う必要があります。

私は通常、ユーザーに適切に通知できるように、アプリケーションで適切なチェックを行うことを選択します。これにより、ライブラリで行う負担がなくなり、より柔軟に使用できるようになります。

ただし、この方法を選択した場合は、すべてのライブラリとアプリケーションを同様の方法 (つまり「標準」) で作成する必要があります。そうしないと、混乱が生じます。

github のほとんどはライブラリ アプローチになると思います。そのため、アプリで何らかの操作を行うことを期待しています。

于 2013-05-14T20:30:58.470 に答える