すべてのメイン メンバー アクティブ化非アクティブ化関数があり、それらに関連する他のすべてのことも実行されるメイン クラスを作成しました。
このメインクラス(いくつかのメイン関数とともに)は、curl を含むさまざまな場所から呼び出されます
クラスでアクティベーション関数(主な関数の1つ)を取りましょう
activationFunction($data)
{
//use data to generate total, discount etc
$this->giveAffiliates($total);
if($this->_error){ return $this->_error;}
$this->activateOrder($total,$discount,id);
if($this->_error){ return $this->_error;}
$this->activatePlan($total,$discount,id);
if($this->_error){ return $this->_error;}
//similarily calling various functions which themselves call other functions
}
activatePlan()
{
try{
//call other functions and do necessary stuff for plan A
}
catch(Exception $e)
{
$this->_error.="Error occurred while activating plan A";
}
//for plan B
try{
//call other functions and do necessary stuff for plan B
}
catch(Exception $e)
{
$this->_error.="Error occurred while activating plan B";
}
//for other plans similarily
}
}
今問題が発生していますif($this->_error){ return $this->_error;}
各サブ関数呼び出しの後 (合計で約 35 の同様の行があります) ユーザーにエラーを送信し、コードの実行を停止する必要があるため、これが必要です。しかし、それは私のコードを長くし、効率的ではありません。サブ関数の 1 つが失敗したときにユーザーにエラーを表示し、コード構造をそのまま維持しようとすると、これらすべての戻り値を減らすにはどうすればよいでしょうか。各メイン関数からさまざまなサブ関数を呼び出す必要があり (これは変更できません。クラスは 1 つしかなく、さまざまな関数が含まれます)、エラーはほとんどの場合、各レベルでキャッチして返す必要があります (単純なエラーはほとんどありません)。が返され、コードの実行が許可されます) . また、後でさまざまな機能が追加される可能性があり、後ですべてを処理できる柔軟性が必要であることも覚えておく必要があります。