2013-10-22 53 views
0

我有一個使用JSON和PHP從數據庫下載數據的iOS和Android應用程序。基本上它有很多從我的MySQL數據庫返回數據的mysql查詢。當我開始這個項目時,只是在PHP中創建了一個包含所有查詢的數組。然後我會在我的url中發送一個索引來訪問該查詢以及可選的一些變量。使用PHP下載JSON的移動應用程序

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

這工作得很好,併爲一個小項目是不壞,但我知道這是不好的編程也沒有一個很好的模式。

所以基本上它是這樣的:

  • APP與模型 - 視圖 - 控制器 - Store模式
  • 當應用程序需要的數據,存儲類可通過URL請求數據,並在該網址
  • 髮指數
  • PHP腳本讀取索引,執行數組保存的查詢,數據編碼到JSON,返回數據
  • 應用的商品類讀取和解碼數據
  • 應用程序的視圖類以任何方式呈現數據通緝。

所以我並沒有真正用php做很多事情,除了訪問我的數據庫,編碼和返回數據。

由於我的應用越來越大,使用越來越多的查詢,我想在新版本中做正確的事情。 PHP在這種情況下使用什麼樣的好模型?

我不是web開發人員,所以我試圖保持所有的PHP進程到最低限度,但意識到這不是一個好的編程方式。

+0

無論你想要像你現在這樣做(只需使用Web服務作爲API來獲取和存儲數據,執行所有數據處理在設備上運行的應用程序中)或將某些處理移入Web服務是一種架構選擇,將取決於您的應用程序的要求......無法說明在不知道您的應用程序正在執行的情況下應該進行多少處理。一般來說,您可能試圖找到一種可最大限度減少設備端資源消耗(處理,內存使用和網絡活動)的平衡。 – eggyal

+0

這聽起來合乎邏輯。我只是希望有這樣一種模型或例子。存儲查詢並使用URL在應用程序中訪問它們。我現在正在做的事情似乎不是很好的編程,但是再次,我不是web開發人員。 –

+1

查找[RESTful](http://en.wikipedia.org/wiki/Representational_state_transfer)。 PHP中的一個例子可能是[this](http://coreymaynard.com/blog/creating-a-restful-api-with-php/)。 – bitWorking

回答

0

而不是將您的查詢存儲在數組中,而應該在您的服務器上使用某種RESTful API。 然後您將發送GET請求到您的服務器,它執行它們並返回所需的數據。這可以被讀取和解碼。 (您也可以發送和更新數據到服務器)。

有一堆用於PHP的REST Framworks,但我使用「Slim Framework」,因爲它非常容易理解(即使對於不熟悉php的人也是如此)。

本例從他們的網站:

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

能夠調用www.yourside.com/hello/Mark,然後返回「你好馬克」。用5行代碼。這很棒。

你可以在那裏寫任何php代碼。要從MySQL數據庫編碼數據,請按照本教程:http://coenraets.org/blog/2011/12/restful-services-with-jquery-php-and-the-slim-framework/只需忽略JQuery部分即可。

在您的應用程序中,然後從提供的URL請求數據。我爲此使用AFNetworking。 (谷歌它,在他們的網頁上找到「HTTP請求操作管理器」,並看看GET)