【问题标题】:Mobile app downloading JSON with PHP使用 PHP 下载 JSON 的移动应用程序
【发布时间】:2013-10-31 00:15:51
【问题描述】:

我有一个 iOS 和 Android 应用程序,它使用 JSON 和 PHP 从数据库下载数据。基本上它有很多从我的 MySQL 数据库返回数据的 mysql 查询。当我开始这个项目时,只是在 php 中创建了一个包含所有查询的数组。然后我会在我的 url 中发送一个索引来访问该查询和一些变量。

http://url.nl/script.php?index=1&var1=foo&var2bar

这很好用,对于一个小项目来说还不错,但我知道这不是好的编程也不是好的模型。

所以基本上是这样的:

  • 具有模型-视图-控制器-存储模型的应用程序
  • 当应用需要数据时,Store 类通过 url 请求数据并在该 url 中发送索引
  • PHP 脚本读取索引,执行数组中保存的查询,将数据编码为 JSON,返回数据
  • 应用商店类读取和解码数据
  • 应用的 View 类以任何想要的方式呈现数据。

所以除了访问我的数据库、编码和返回数据之外,我并没有真正用 php 做太多事情。

由于我的应用程序变得非常大并且使用越来越多的查询,我想在我的新版本中做正确的事情。在这种情况下,什么是 PHP 使用的好模型?

我不是网络开发人员,所以我试图将所有 PHP 进程保持在最低限度,但我意识到这不是一种好的编程方式。

【问题讨论】:

  • 您是想像现在一样做(简单地使用网络服务作为 API 来获取和存储数据,在设备上运行的应用程序中执行所有数据处理)还是将一些处理转移到网络中服务是一种架构选择,取决于您的应用程序的要求......如果不知道您的应用程序在做什么,就不可能说应该在哪里完成多少处理。一般来说,您可能正在尝试找到一个平衡点,以最大限度地减少设备端资源消耗(处理、内存使用和网络活动)。
  • 听起来合乎逻辑。我只是希望这种事情有某种模型或例子。使用 URL 在应用程序中存储和访问查询。我现在正在做的事情看起来不像是好的编程,但话说回来,我不是网络开发人员。
  • 查找RESTful。 PHP 中的一个例子可以是this
  • @redreggae:虽然我完全赞成使用 RESTful API,但我认为这无助于回答 OP 关于 Web 服务和设备之间处理划分的问题。

标签: php mysql objective-c json servlets


【解决方案1】:

您应该在您的服务器上使用某种 RESTful API,而不仅仅是将您的查询存储在一个数组中。 然后,您将 GET 请求发送到您的服务器,服务器执行它们并返回所需的数据。然后可以读取和解码。 (您也可以向服务器发送和更新数据)。

有很多 PHP 的 REST 框架,但我使用“Slim 框架”,因为它真的很容易理解(即使对于不熟悉 php 的人)。

这个例子来自他们的网站:

$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
    echo "Hello, $name";
});
$app->run();

可以调用 www.yourside.com/hello/Mark,然后返回“Hello Mark”。用 5 行代码。太棒了。

您可以在那里编写任何 php 代码。要对 MySQL 数据库中的数据进行编码,只需遵循本教程:http://coenraets.org/blog/2011/12/restful-services-with-jquery-php-and-the-slim-framework/ 只需忽略 JQuery 部分。

然后,在您的应用程序中,您从提供的 URL 请求数据。我为此使用 AFNetworking。 (谷歌一下,在他们的页面上找到“HTTP Request Operation Manager”并查看GET)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-25
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多