0

環境: Concrete5 は URL を解析してページのコントローラー (ビューを持たないツール ファイル) を見つけ、そのビューをレンダリングします。少し単純ですが、要点です。

Concrete5 は大量のコンテンツを処理するための非常に美しいアーキテクチャを備えているため、バックボーンで記述された Web アプリを強化するための一種のバックエンド メカニズムとして使用したいと考えています。Backbone には RESTful 実装が必要です。これは、PHP ベースの RESTful API である Slim で実装されているのを見てきました。

競合: Concrete5 は URL を解析するため ([ビューをレンダリングする] ページのコントローラーまたは [ビューをレンダリングしない] ツール ファイルを検出するため)、Slim の REST 実装と競合します。この部分は本当...

この部分は単なる思い込みです: Slim の URL は偽物であり、Backbone が成功時に使用する ajax 呼び出し (REST) を作成するためにのみ使用されます。ブラウザはデフォルトのアクションを実行できません。つまり、選択したページにアクセスすると、Concrete5 と競合することはありません

質問:

1)。答えは単に single_page を作成し、単にビューをレンダリングしないことですか?
2)。「レンダリングされていない」場合、上記の信念をそのまま続行できますか?
3)。それとも、自分が思っているよりも多くの衝突に遭遇するでしょうか?

確かに、C5 がページ(グローバル 'C5_ENVIRONMENT_ONLY' 変数を 'true' に設定することでサイト全体ではなく) を持つことができるようにして、RESTful API で動作するようにする方法があります。

他のCMS / Backboneプロジェクトで誰かが同様のことをしましたか?

ティア

4

1 に答える 1

1

C5 サイトで管理されているコンテンツをバックボーン フロントエンド アプリに提供していますか? それとも、このアプリは C5 コンテンツとは異なりますか? フロントエンド アプリが C5 コンテンツと異なる場合は、このパスに対して C5 を完全にバイパスし、そこにアプリを配置して独自の処理を実行します (C5 のルーターは、実際に要求された URL にページが存在しない場合にのみ呼び出されます)。 .

コンテンツが C5 によって管理されている場合、Slim/Backbone と C5 の異なるルーティング システムの両方を連携させることは不可能だと思います。この場合に考えられる唯一の解決策は、バックボーン アプリを Concrete5 ツール ファイルとして提供することですが、htaccess ファイルで書き換えルールを使用して、バックボーン アプリへのすべてのリクエストがサービスを提供している 1 つのツール ファイルに送られると c5 に認識させるようにします。それ...次に、バックボーン/スリムルーターをハックして、それらのhtaccessの変更を認識します(たとえば、htaccessは特定のパスへのリクエストを代わりにクエリ文字列パラメーターに変換します。次に、バックボーン/スリムアプリは、フレームワークがURLを探している場所にそれらのクエリ文字列パラメーターを戻しますパス コンポーネント)。

いずれにせよ、それは首の完全な痛みになるだろうし、問題に値しない可能性が非常に高い.

于 2012-08-14T16:01:26.040 に答える