簡體   English   中英

Backbone.js如何使用PHP

[英]Backbone.js How to use with PHP

我一直在研究backbone.js,我似乎無法弄清楚如何讓它與php通信以保存模型數據。 它發送請求,但如何捕獲該請求,無論是“創建”,“更新”,“讀取”,“刪除”等。

謝謝

您可以考慮的另一個選項是使用預先打包的RESTful框架進行滾動,該框架具有內置的所有必要功能來執行Backbone服務器查詢。 我個人最喜歡的是Josh Lockhart的SlimPHP框架

一些簡單的示例代碼(一旦你有SlimPHP設置)用於你的Backbone調用看起來像這樣。

$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));
}

這是一個將Backbone json轉換為數組的POST示例。

// 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服務器所需的所有功能。 非常適合原型設計。 將它與數據庫抽象層和其他一些工具相結合,您可以更快地制作任何您想要的東西。

您可以在這里看到一些其他示例代碼:

  1. 如何將Backbone模型發布到服務器
  2. 保存Backbone數據的方法

這里有一些基於PHP的RESTful解決方案的鏈接: Framework List

backbone.js的模型使用特定的URL來獲取和發送數據。 你必須確保在那里有一個PHP腳本。

現在有兩種可能性。

首先,該方法作為附加變量在$ _POST內發送。 其次,您必須查找使用的請求方法(GET,POST,PUT,DELETE),您可以使用$_SERVER['REQUEST_METHOD']

現在你可以使用簡單的if-else或switch語句來處理請求並提供所需的數據,就像我認為json一樣。

$ GLOBALS ['HTTP_RAW_POST_DATA']對我來說很好,我不知道為什么print_r($ _ POST)不打印anithing !!

在您的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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM