я создал главный класс, где все мои основные функции деактивации активации члена являются и всеми другими вещами, связанных с ними, также сделалИмея более эффективный код для возврата ошибок
это основной класс (наряду с некоторыми основными функциями) вызывается из разных мест, в том числе через завиток
Теперь давайте мою activaton функцию (Одна из основных функций) в классе
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;}
после каждого вызова подфункций. (Total Im имеет около 35 таких похожих строк) Мне это нужно, поскольку мне нужно отправить сообщение об ошибке пользователю и остановить мой код от дальнейшего использования. Но это делает мой код длинным и неэффективным. Как я могу уменьшить все эти возвращения, но показать пользователю ошибку, когда одна из вспомогательных функций не работает, и попытаться сохранить структуру кода как есть. Я должен вызывать различные подфункции из каждой основной функции (это я не могу изменить, в ней будет только один класс и различные функции), и ошибки в основном должны быть пойманы на каждом уровне и возвращены (очень мало простых ошибок не возвращается, и код разрешен для продолжения работы). Должен также иметь в виду, что позже могут быть добавлены различные другие функции, и он должен быть достаточно гибким, чтобы обрабатывать все это позже.
Я не думаю, что эффективность выполнения кода действительно проблема. Достаточно удобство и удобочитаемость кода. –
Уверенность в обслуживании/читаемость кода, безусловно, проблема, если не главная проблема – user1913849