PhoneGap + jQuery Mobile + тортPHP - PullRequest
2 голосов
/ 28 марта 2012

Я сделал полное приложение в JQM, используя cakePHP в качестве языка на стороне сервера.Приложение на этом этапе доступно только через браузер.

Я использовал стандартный SQL в PHP для извлечения всех данных и вообще не использую JSON.Мой вопрос заключается в том, должен ли я в значительной степени отказаться от cakePHP, чтобы мое приложение работало на iPHONE, и использовать более JSON-подход?

Я новичок в JSON и у меня есть проблемы, связанные с управлением доступоми контроль над тем, какие данные видны определенным пользователям.

До сих пор я думал о том, чтобы создать шаблон для PhoneGap, чтобы приложение работало в автономном режиме и предлагало соответствующие сообщения об ошибках, а другое мое приложение могло быть загружено в него, как только пользовательвыбрать логин?

Любые идеи или толчок в правильном направлении будут вершинами.

Ответы [ 2 ]

1 голос
/ 28 марта 2012

PHP может использовать json через встроенные функции json_encode и json_decode.Таким образом, вы можете продолжать использовать CakePHP в качестве бэкэнда, если хотите, клиент не должен ни знать, ни заботиться.

Для документации по PHP JSON см .: http://us.php.net/manual/en/function.json-encode.php

Использование JSON является выборомв каком формате вы отправляете данные между клиентом и сервером.JSON оказывается удобным на стороне клиента, который написан на Javascript.Вам не нужно использовать JSON для создания дружественного для iPhone веб-сайта / веб-приложения.

Мой общий подход состоит в том, чтобы использовать функцию toJSON в моих объектах данных PHP.У меня есть функция, которую я использую для отправки 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 голосов
/ 29 марта 2013

Вы всегда можете оставить свой сайт cakePHP.

Поскольку phonegap может иметь только html, css и javascript, вам необходим удаленный сервер для предоставления службы API, чтобы приложение могло запрашивать данные с удаленного сервера через javascript. Затем удаленный сервер может ответить на запрос путем кодирования данных в формате json.

...