Ответ 1
Другим вариантом, который вы можете рассмотреть, является свертывание с предварительно упакованной структурой RESTful, которая имеет все необходимые функции, встроенные для выполнения запросов сервера Backbone. Мой личный фаворит Josh Lockhart SlimPHP Framework.
Простой примерный код (после установки SlimPHP), используемый для вызова ваших магистральных вызовов, выглядит следующим образом.
$app->get('/user', function() use ($app) {
// See if session is set, get user info as array
if (isset($_SESSION['userID']) {
$user = // grab user with userID data from DB
}
// Respond to the get request with a json object
$response = $app->response;
$response['Content-Type'] = 'application/json';
$response->body(json_encode($user));
}
Вот пример POST, который превращает Backbone json в массивы.
// Middleware that detects type of data and converts it to something usable
$app->add('Slim_Middleware_ContentTypes'); // JSON to associative array
...
$app->post('/message', function() use ($app) {
$dataIn = $app->request()->getBody();
...
// Save to DB $dataIn['message'], $dataIn['author'], etc.
}
Вот пример PUT с использованием некоторых параметров.
$app->put('/user/:id', function($id) use ($app) {
// Find appropriate user from DB that has $id as ID
$dataIn = $app->request()->getBody();
// Save to DB $dataIn['name'], $dataIn['age'], etc.
}
И вот DELETE.
$app->delete('/message/:id', function($id) use ($app) {
// Find appropriate message from DB that has $id as ID
// Delete message with id of $id
}
Хотя это не исчерпывающий пример всех других вещей, которые следует учитывать, он должен дать вам представление о тех типах открытых решений, которые уже существуют для вас. Мне лично нравится Slim, потому что он такой легкий, простой, но у него есть все функции, которые вы хотите использовать на сервере RESTful. Отлично подходит для прототипирования. Объедините его с уровнем абстракции DB и некоторыми другими инструментами, и вы можете сделать что угодно быстрее.
Здесь вы можете увидеть еще один пример кода:
И вот ссылка на некоторые другие решения RESTful на основе PHP: Список рамок