gpt4 book ai didi

PHP OOP 和 AJAX : How to handle serverside in Class?

转载 作者:行者123 更新时间:2023-12-04 22:21:08 24 4
gpt4 key购买 nike

我正在努力将我的标准 PHP 项目转换为 OOP,但我遇到了关于如何使用 PHP 类处理 AJAX 调用的障碍。我对我现在做这件事的方式不满意。我有一个 TillAjax.php 文件,我通过 AJAX 调用从我的 TillUI.php 文件调用它。

在 TillAjax.php 文件中,我这样做是为了获取从 ajax 调用传递的信息。

$till = new Till();
if(isset($_POST['data']))
$till->doStuff($_POST['data']);

我认为这会破坏 OOP。

我使用过 ASP.NET MVC,这里可以调用 Controller 中的特定操作,而无需检查发布值。所以我想知道是否有更聪明的PHP方式来解决上述问题?

最佳答案

我为此使用的方法是拥有一个 Ajax 类。

您的 php 文件调用 Ajax::Process($_GET['handle']),其中“handle”包含静态类方法的名称,所以可能是“Till::Process”。 Ajax 类根据允许的函数列表检查函数(即允许通过 ajax 调用的函数),然后使用 call_user_func_array 调用函数(我的代码使用 $_POST 的内容作为传递给函数的参数)。该函数的返回值会自动编码为 json 并输出到客户端。

这意味着您的目标 php 文件如下所示:

<?php

//File: ajax.php

include ("Ajax.php");

Ajax::Process($_GET['handle']);

?>

我认为这很简单。

然后你可以拥有看起来像这样的 javascript (jquery) :

$.get('ajax.php?handle=Till::Process', {}, function(result) {
//called on page response
});

那么结果现在包含从 php 方法 Till::Process 返回的任何数据。

关于PHP OOP 和 AJAX : How to handle serverside in Class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com