2011-07-28 6 views
4

私のアプリを設計するにあたって、backbone.jsでUIを構成しました。それぞれのモデルはMySQL DB内のデータのエントリを表しています。私はユーザーの入力を受け取り、それに応じてモデルを変更する方法を理解しています。しかし、これをRESTでCRUD(Create、Read、Update Delete)を達成するDBにどのように同期させるのですか?backbone.jsをphp/MySQLに同期

Rails 3で実装されているのを見たことがあります。しかし、私はjavascript、jQuery、php、backbone.jsしか知りません。この1つのタスクのためにRuby全体を知っていなくても、これを行う最速の方法を知りたいと思います。

+1

これは役立つかもしれませんhttp://stackoverflow.com/questions/5755074/a-restful-persistence-olution-usable-with-backbone-js-in-php – Michal

答えて

12

私が真剣に強調したいのは、Backbone.jsが特定のサーバサイドのアーキテクチャのレールにハードワイヤード接続されていないことです。Backbone.jsの愛好家の多くは、Backbone.jsがコミュニティにとって非常に情熱的な安らかなパターンと調和して設計されているため、多くの(ほとんどの?)Backbone.js愛好者もレール愛好家です。あなたがRailsのを使用したい場合はいけない

しかし、あなたはまだあなたが安らかなインターフェースを実装するかどうかを決定し、何よりも絶対にBACKBONE.JS

まずをフルに活用することができます。そうすることはPHPで非常に簡単です。 zendフレームワークを使用している場合は、強力な安らかなAPIを作成するための優れたZend_Restコンポーネントがあります。あるいは、安らかなapisを簡単に作成するためのサポートを組み込んだ、RecessとFuelのような比較的新しいフレームワークを調べることもできます。

バニラのPHPを使って自分の安らかなapiコードを作ることができます。

いくつかの慣習に従って、バックボーンの統合は非常に便利です。 例バックボーンは、レコードがidフィールドを持つことを期待しています。また、バックボーンはレコードサーバーの提出時に、更新されたフィールドを持つjsonのシリアル化された更新レコードを返します。このような小さなことを気にすると、多くのバックボーンのクラスをオーバーライドせずにアプリケーションを作成することができます。

残りのapiインターフェイスがレール実装と大きく異なる場合や、残りのAPIを実装していない場合は、要件に合わせてBackbone.Model.sync関数を再プログラムする必要があります。

+0

サイドノートでは、あなたの実装が重心が重いクライアントとサーバの両方でmvcの実装を持つことは冗長かもしれません。そのような場合は、フロントエンドに適切なMVCアーキテクチャーを、バックエンドにモデルレイヤーだけを置くことができます。そのような実装については、以下を参照してください:http://redbeanphp.com/#/BeanCan_Server .json rpc対応バックエンドを使用するには、Backbone.Model.syncをオーバーライドする必要があります。 – lorefnon

+0

私はPHPのRESTに完全に慣れていません。私が読んだ限り、それはURLまたはちょうど$ _POSTに転送する値を含めるのが好きです...私が完全に逃したことはそれ以上にありますか? –

+2

@William RESTにはさらに多くのことがあります。 RESTの哲学では、HTTPの動詞を使用する必要があります(GET、PUT、POST、DELETEなどのリクエストを送信するためにどのメソッドを使用していますか)。リソースに関して実行されるアクションを示すために必要です。まず、リソースの観点からアプリケーションを整理する必要があります(データベース内のテーブルに最もよく対応しますが、実際には何かを表すことができます)、次にリソースにアクセスするために使用するメソッドに応じて適切な処理を行うCRUDハンドラを提供します。 GETで取り出し、PUTで​​更新し、POSTで作成し、DELETE – lorefnon

関連する問題