2012-03-28 2 views
2

나는 cakePHP를 서버 측 언어로 사용하여 JQM에서 전체 응용 프로그램을 만들었습니다. 이 단계의 응용 프로그램은 브라우저를 통해서만 사용할 수 있습니다.PhoneGap + jQuery Mobile + cakePHP

저는 PHP에서 표준 SQL을 사용하여 모든 데이터를 가져 왔으며 JSON을 전혀 사용하지 않았습니다. 제 질문은 내 응용 프로그램을 iPHONE에서 작동시키고 더 많은 JSON 접근 방식을 채택하기 위해 cakePHP를 버려야 만합니까?

저는 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 친화적 인 웹 사이트/웹 앱을 만들 필요가 없습니다.

내 일반적인 접근 방식은 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 서비스를 제공하려면 원격 서버가 필요합니다. 그런 다음 원격 서버는 json 형식으로 데이터를 인코딩하여 요청에 응답 할 수 있습니다.

관련 문제