@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);
    }
  • Вопрос задан
  • 1180 просмотров
Пригласить эксперта
Ответы на вопрос 1
alex-1917
@alex-1917
Если ответ помог, отметь решением
На порядок более длинных простынях прекрасно ориентируюсь. Подсветка кода все такое...

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


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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 10:43
1500 руб./за проект
26 апр. 2024, в 10:21
1200 руб./в час