php - 如何在 Zend Web 应用程序和 Zend JSON-RPC 服务器上使用相同的 "back end"代码?

标签 php zend-framework web-applications mobile json-rpc

我将要设计一个 Zend 网络应用程序,为了呈现其 View ,该应用程序将使用数据,这些数据也应该可以通过 JSON-RPC api 检索,用于移动原生应用程序。我想知道如何构建项目以保持这两个部分独立。 Web 应用程序将通过转到以下 URL 启动:

http://www.domainname.com

然后,iOS 和 Android 客户端应该能够通过向

发送 post 请求来使用 JSON-RPC api

http://www.domainname.com/api/

web 应用程序和 api 是否应该是两个独立的 zend 应用程序?我对此持怀疑态度,因为由于它们将管理的数据基本相同,因此 Web 应用程序的请求处理程序类和 Controller 将有一堆相似的代码来检索和操作要返回的数据。

是否有一种好的、干净且灵活的方法来为 JSON-RPC 服务器和 Web 应用程序使用相同的“后端”代码?

我想避免代码重复,但也希望 api 调用尽可能快。

感谢任何愿意提供帮助的人!

最佳答案

您实际上可以很容易地实现这一目标。

当 Controller 处理它时,使用...

if ($this->_request->isXmlHttpRequest())
{
     // Code here
}

如果您正在保存数据,过程可以相同。通常,您只需使用它来返回 View 或 JSON。例如……

// Save the data here

if ($this->_request->isXmlHttpRequest())
{
     die(Zend_Json::encode(array('success' => true)));
}
else
{
     // View specific data here
}

我希望这对您有所帮助并且有意义!

关于php - 如何在 Zend Web 应用程序和 Zend JSON-RPC 服务器上使用相同的 "back end"代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8574422/

相关文章:

javascript - 使用 PHP/Javascript 将差异值最小的用户配对

php - 动态网页自动快照

php - 如何从 WordPress 内容中提取图像?

azure - 如何强制 Azure WebApp 在每次部署后重新启动?

python - GAE 中的 worker 角色和 Web 角色对应

php - Laravel Mail::send 无法在服务器上进行身份验证,但可以在本地工作

php - 替代登录和身份验证方法(适用于老年人)

zend-framework - Zend 框架 : Models, 映射器;映射器中的默认字段和模型中的字段操作?

php - Zend Framework 中的自定义类和函数

java - 加载 .properties 文件而不重新启动 WebLogic 服务器 - ADF 应用程序