2019/01/30

Test DevExtreme DataGrid data binding

DataGrid 是 DevExtreme 主打的元件之一,把 PHP 環境架設好之後,就拿了官方範例來使用。
範例都很佛的放在 Github 供人下載

範例 JS 的這段程式碼讓我覺得非常奇怪:
    var url = "php/service.php";
    var db = DevExpress.data.AspNet.createStore({
        key: "ID",
        loadUrl: url,
        insertUrl: url,
        updateUrl: url,
        deleteUrl: url
    });
後端使用了 PHP,卻在前端使用 AspNet 建構式。

除了 DevExtreme 主程式外,還需要額外下載 ASP.NET 外掛程式 (JavaScript)

再看看 PHP 是怎麼寫的:

// Service.php
switch($_SERVER["REQUEST_METHOD"]) {
    case "GET": {
        $params = GetParseParams($_GET);
        $response = $controller->Get($params);
        break;
    }
    case "POST": {
        $params = GetParamsFromInput();
        $response = $controller->Post($params["values"]);
        break;
    }
    case "PUT": {
        $params = GetParamsFromInput();
        $response = $controller->Put($params["key"], $params["values"]);
        break;
    }
    case "DELETE": {
        $params = GetParamsFromInput();      
        $response = $controller->Delete($params["key"]);
        break;
    }
}
大致上是要回傳和 ASP.NET 相同的封包所作的設計。

從範例程式可以知道它用上 HTTP 傳輸協定的:GET、POST 和不常見的 PUT 及 DELETE 請求方法。

後端的 PHP 程式則依據 JS 元件傳送來的設定,回傳相關屬性的封包內容。

整個包裝得非常好,DevExtreme 所寫的 PHP 的類別完全可以直接利用,可以感受到官方的誠意十足。

可惜我的虛擬主機不提供 DELETE 和 PUT 請求方法,不得不尋求【Custom Sources】自己刻程式碼的方法。

(To be continued)

See also:



沒有留言:

張貼留言