如何在PHP中正确实现Web服务


How to properly implement web services in PHP?

目前在我的基于 PHP 的应用程序中,我使用一个文件,例如服务.php并通过 AJAX 调用它以返回适当的数据。

为了调用某个方法,我在 GET 中发送一个参数。例如服务.php?操作=read_article。从这一点开始,它将命中一个巨大的switch语句,直到它找到合适的案例并返回我正在寻找的数据。

从技术上讲,一切都可以正常工作,但我不禁觉得这不是正确的方法。

有没有更好的方法在PHP中实现Web服务?

动作开关很好,如果你使用 OOP,你可以让它调用各种方法来保持它很小,比如..

switch ($_GET['action']) {
    case "blah":
        return $this->doBlah();
        break;
    case "foo":
        return $this->doFoo();
        break;
    default:
        return $this->doError();
}

或者,您可以执行其他框架所做的事情,并将URL映射到类似..

/services/read/

映射到类"服务"和方法"读取",看看Codeigniter是如何做到这一点的。

这里有一个非常好的教程,介绍如何使用 PHP 创建 RESTful api。

使用 amfphp 之类的东西,它集成到多种语言和应用程序中,您可以编写自己的服务类来处理基于您需要的几乎任何输入/输出。我在iPhone,Android和PC上重复使用相同的服务。链接: http://www.silexlabs.org/amfphp/