Задать вопрос
@MrDickson

Как избавиться от if else?

Можно ли как-то избавиться от уродливых if else, чтобы не нести их через весь код?
Или единственной альтернативой является перед if писать предполагаемую ошибку? что тоже не есть гуд

public function post(Request $request, Response $response, array $args)
    {
        if(!$this->container->session->has('user'))
        {
            if (Security::PassEmail($request->getParam('email')))
            {
                $boss = Boss::where(['email'], '=', $request->getParam('email'))->first();
                if ($boss !== null)
                {
                    if (password_verify($request->getParam('password'), $boss->password))
                    {
                        $this->container->session->set(['user' => $boss->email,
                            'auth_hash' => sha1($boss->email)]);
                        $this->setError('lang:post_auth_successful_auth');
                    } else
                    {
                        $this->setError('lang:post_auth_bad_password');
                    }
                } else
                {
                    $this->setError('lang:post_auth_no_user_found');
                }
            } else
            {
                $this->setError('lang:post_auth_bad_email');
            }
        } else
        {
            $this->setRedirect('/dashboard');
        }

        return AuthResponder::respond($response, $this->response_status);
    }
  • Вопрос задан
  • 1202 просмотра
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
alex-1917
@alex-1917
Если ответ помог, отметь решением
На порядок более длинных простынях прекрасно ориентируюсь. Подсветка кода все такое...

1. Уберите никому ненужные переносы строки перед } else
кол-во строк сразу в 2 раза меньше
2. Уберите перенос строки здесь:
$this->container->session->set(['user' => $boss->email,
                            'auth_hash' => sha1($boss->email)]);


ЗАЧЕМ вы все это делаете?? Прекратите кодить на калькуляторе и купите уже 27-монитор, там вообще не будет таких проблем...

5bc4dd30e2532891719959.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы