2012-03-28 17 views
2

私は、サーバーサイド言語としてcakePHPを使用してJQMで完全なアプリケーションを作成しました。この段階でのアプリケーションは、ブラウザ経由でのみ利用可能です。PhoneGap + jQuery Mobile + cakePHP

PHPで標準のSQLを使用してすべてのデータを取得しましたが、JSONをまったく使用していません。私の質問は、私のアプリケーションをiPHONE上で動作させるためにcakePHPをかなり捨てて、JSONのアプローチを採用することですか?

JSONの新機能で、アクセス制御を処理して特定のユーザーに表示されるデータを制御する方法に関する問題があります。

これまでのところ、Phonegapのテンプレートを作成してアプリがオフラインで動作し、関連するエラーメッセージが表示され、ユーザーがログインすると他のアプリが読み込まれるようになるのでしょうか?

正しい方向のアイデアやナッジはトップです。

+0

私はJSONとPHPの使用について以下に答えました。 「Phonegapのテンプレートを作成してアプリケーションがオフラインで動作するように」については、MVCのために提供されている機能(Backbone.jsや他の何百万ものものなど)を持つフレームワークを見ることができます。これは、ページが再ロードされない限り機能します。データはメモリに格納され、できるだけAjax経由でサーバーと同期され、できない場合はエラーコールバックを登録してそのケースを処理できます。 – webjprgm

答えて

1

PHPは、組み込み関数json_encodeとjson_decodeを使用してjsonを使用できます。必要に応じてCakePHPをバックエンドとして使用し続けることができます。クライアントは知っていても気にしてはいけません。

は、PHP JSONドキュメントについては、以下を参照してください。 http://us.php.net/manual/en/function.json-encode.php

JSONの使用は、クライアントとサーバの間でデータを送信するどのような形式の選択です。 JSONは、Javascriptで書かれたクライアント側で便利に起こります。 JSONを使用してiPhoneに優しいWebサイト/ Webアプリケーションを作成する必要はありません。

私の一般的なアプローチは、私のPHPデータオブジェクトにtoJSON機能を持たせることです。 JSONをクライアントに送信するための関数があり、まずオブジェクトを送信する前にtoJSONメソッドを探します。見つけたら、それを呼び出してその結果を送信します。これにより、オブジェクトにはすべてを送信するのではなく、最小限のデータメンバーセットを提示する機会が与えられます。これはRuby on Railsでも使用されている基本的なアプローチと同じです。

例を示します。おそらくCakePHPはこれに相当するものを持っています:

function sendJSON($data) { 
    header('Content-Type: application/json'); 
    header('Cache-Control: no-cache, must-revalidate'); 
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 

    echo json_encode_custom($data); 
    //echo '(' . json_encode($data) . ')'; 
} 

function json_encode_custom($data) { 
    if(is_object($data) && method_exists($data, 'toJSON')) 
      $data = $data->toJSON(); 
    return json_encode($data); 
} 
0

いつでもcakePHPサイトを維持できます。

phonegapにはhtml、css、javascriptしかないので、APIサービスを提供するためにはリモートサーバーが必要です。そのため、アプリケーションはjavascriptを使用してリモートサーバーからデータを要求できます。次に、リモートサーバーはjson形式でデータをエンコードすることによって要求に応答することができます。

関連する問題