Backbone.js Как использовать с PHP

Я искал backbone.js, и я не могу понять, как заставить его общаться с php, чтобы сохранить данные моделей. Он отправляет запрос, но как я могу захватить этот запрос, будь то «Создать», «Обновить», «Прочитать», «Удалить» и т. Д.

благодаря

Другим вариантом, который вы можете рассмотреть, является свертывание с предварительно упакованной структурой RESTful, которая имеет все необходимые функции, встроенные для выполнения запросов сервера Backbone. Мой личный фаворит – 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. } 

И вот УДАЛ.

 $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 и некоторыми другими инструментами, и вы можете сделать что угодно быстрее.

Здесь вы можете увидеть еще один пример кода:

  1. Как разместить базовую модель на сервере
  2. Способы сохранения данных магистрали

И вот ссылка на некоторые другие RESTful-решения на основе PHP: список рамок

Модель backbone.js использует определенные URL для извлечения и отправки данных. Вы должны убедиться, что там есть скрипт php.

Теперь есть две возможности.

Во-первых, метод отправляется внутри переменной $ _POST в качестве дополнительной переменной. Во-вторых, вам нужно искать использованный метод запросов (GET, POST, PUT, DELETE), который вы можете использовать с $_SERVER['REQUEST_METHOD']

Теперь вы можете использовать простые инструкции if-else или switch для обработки запроса и доставки необходимых данных, как я думаю, json.

$ GLOBALS ['HTTP_RAW_POST_DATA'] отлично работает для меня, я не знаю, по какой причине print_r ($ _ POST) не печатает аффининга !!

В вашем php-скрипте вы будете иметь это для методов PUT и DELETE, поскольку вы можете отфильтровать их с помощью: $_SERVER['REQUEST_METHOD']

 parse_str(file_get_contents("php://input"),$post_vars); 

Если запрос POST или GET, вы можете использовать его нормально, но если запрос PUT или DELETE, используйте приведенную выше строку, и вы можете получить доступ к vars с помощью:

 $post_vars['fruit'] for example... 

Когда вы будете готовы ответить на магистраль, вы должны сначала создать правильный заголовок:

 header('Content-type: application/json; charset=utf-8'); 

и закодируйте ответ на json:

 echo json_encode(array("message"=>"missing fields","status"=>200));