mus
Новичок
Рефакторинг на примере класса
Господа, как бы вы упростили (сгруппировали) следующий код.
Имеется класс для сбора пользовательских ошибок (не заполнены все поля, логин занят и т.д.), у него есть три метода, исходный код которых очень похож. По мне следует провести рефакторинг кода, но в данном случае в голову ничего не приходит
Три метода - фишка в том, что сей класс имеет подразделения - это раздел, в котором произошла ошибка (на странице может быть несколько разделов, как то аутентификация и регистрация) и критична ли ошибка, как то если пароль меньше 6 символов - разрешить регистрацию, но вывести предупреждение, что пасс конечно )(еpоват, но если, скажем, вбиваемый логин в базе существует, то тут регистрацию следует запретить.
Господа, как бы вы упростили (сгруппировали) следующий код.
Имеется класс для сбора пользовательских ошибок (не заполнены все поля, логин занят и т.д.), у него есть три метода, исходный код которых очень похож. По мне следует провести рефакторинг кода, но в данном случае в голову ничего не приходит
PHP:
function getErrors()
{
$tmp = array();
$args = func_get_args();
list($chap,$isCritical) = $args;
for($i = 1; $i <= $this->cnt;$i++) {
if(($chap === NULL || $this->Errors[$i]['chap'] === $chap) &&
($isCritical === NULL || $this->Errors[$i]['isCritical'] === $isCritical)) {
$tmp[] = $this->Errors[$i];
}
}
return $tmp;
}
function isEmpty()
{
$args = func_get_args();
list($chap,$isCritical) = $args;
for($i = 1; $i <= $this->cnt;$i++) {
if(($chap === NULL || $this->Errors[$i]['chap'] === $chap) &&
($isCritical === NULL || $this->Errors[$i]['isCritical'] === $isCritical)) {
return false;
}
}
return true;
}
function Count() {
$count = 0;
$args = func_get_args();
list($chap,$isCritical) = $args;
for($i = 1; $i <= $this->cnt;$i++) {
if(($chap === NULL || $this->Errors[$i]['chap'] === $chap) &&
($isCritical === NULL || $this->Errors[$i]['isCritical'] === $isCritical)) {
$count++;
}
}
return $count;
}
