В настоящее время у нас есть страница под названием login.php
и всякий раз, когда мы определяем, что пользователю может потребоваться авторизация для чего-либо, мы включаем его:
if($userLevelNotHighEnough) {
require "login.php";
}
Эта страница проверяет, что пользователь вошел в систему, но если нет, он создает страницу входа и выходит. Есть много дополнительных действий, которые выполняет страница входа в систему (например, печать определенных сообщений, разрешение определенных специальных входов в систему и т. Д.), Которые являются беспорядочными вещами бизнес-логики. Эти параметры в настоящее время обрабатываются путем установки переменных в вызывающем скрипте, доступ к которым осуществляется через login.php, т.е.
// in calling script
if($userLevelNotHighEnough) {
$someOptionalParameter = "my value";
require "login.php";
}
/** ============================ **/
// in login.php
if(!empty($someOptionalParameter)) {
// do something
}
Как вы можете себе представить, этот вид кода распространен во всей кодовой базе, и это делает добавление в кодовую базу очень сложно, особенно для тех, кто относительно новичок в коде.
Какие есть альтернативы такой структуре?
Моя первоначальная идея заключалась в том, что мы могли бы сделать функцию под названием checkLogin
вместо этого и передать ему ассоциативный массив необязательных параметров, но это не кажется тот намного лучше, чем нынешняя система.
Задача ещё не решена.
Других решений пока нет …