Я работаю над бэкэндом для веб-сайта, подумайте о социальных сетях, для которых требуются тяжелые сообщения 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, так как большинство функций основано на классах и их легко использовать повторно.