Правильный способ настроить PHP для ajax POST - PullRequest
0 голосов
/ 12 мая 2019

Я работаю над бэкэндом для веб-сайта, подумайте о социальных сетях, для которых требуются тяжелые сообщения ajax. Я хочу, чтобы код был правильным ООП и его было легко поддерживать / обновлять позже. Моя текущая идея состоит в том, чтобы мои посты ajax вызывали подробный php-скрипт, который затем выясняет, какой запрос делается, и вызывает соответствующую функцию в отдельных классах. Тем не менее, единственное хорошее решение для этого, которое я нашел, - это использование переключателей, и через некоторое время это выглядит очень грязно.

Вот общая идея:

Ajax call

      $('#signup').click(function(){
        $.ajax({
          type: "POST",
          url: "liber/signup",
          processData:false,
          contentType: "application/json",
          data: '{"email": "' + $("#email").val() + '", "password": "' + $("#password").val() + '"}',
          success:function(r){
          },error:function(r){
          }
        });
      });

php называется:

  if($_SERVER['REQUEST_METHOD'] == "POST")
  {
      $url = $_GET['url'];
      switch($url)
      {
        case "signup":
          Commands::SignUp();
        break;
        default:
        break;
      }
  }

Пример функции в классе «Команды»:

    public static function Signup()
    {
      $postbody = file_get_contents("php://input");
      if(UserCredentials::InsertNewUser($postbody))
      {
        $token = "account created";
        echo '{"token": "'.$token.'"}';
        http_response_code(200);
      }else{
        $token = "No account created";
        echo '{"token": "'.$token.'"}';
        http_response_code(200);
      }
    }

Класс «Команды» заботится о фактическом http_response_code и возвращает результат обратно в ajax, вызывая правильный класс / функцию, определяющую, какая функция вызывается из исходного случая переключения в php.

Однако, как я уже говорил, это быстро стало очень грязным. Особенно в случае выключателя, который был заполнен сотнями различных случаев. Какие-нибудь полезные советы от php-гуру, которые могут сделать его немного более оптимизированным и легче поддерживать в долгосрочной перспективе? У меня нет проблем с переписыванием основных частей php, так как большинство функций основано на классах и их легко использовать повторно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...