0

フロントコントローラーパターンについて調べました。そのパターンを今後のプロジェクトに使用すると確信しています。まだコードを書いていませんが、Web サイトでプレゼンテーション ロジックを使用するにはどうすればよいですか? ユーザーがログインしていて、ユーザーが特定の権限を持っているときに、特定の情報を表示したい場合はどうすればよいですか? 特定のフォームが動作するためにデータベースからのデータが必要な場合はどうすればよいでしょうか? (後者の場合、対応するコントローラーを AJAX で呼び出して、この方法でデータをロードすることを考えていましたが、より効率的な方法があるかどうかはわかりません)これは少し混乱を招き、可能であればフレームワークを使用することは避けたいと考えていますSmarty や CakePHP のように。よろしくお願いします。

編集: テンプレート コントローラー クラスを使用することを考えていました。これは、フロント コントローラーから呼び出される、特定の Web ページを読み込んで表示することを担当するクラスです。私の主な問題は、テンプレート ページが呼び出されたときにデータベースからデータを読み込むことです。データベースからのデータを必要とするフォームがある場合はどうなりますか? データをロードするために AJAX に頼る必要がありますか、またはレイヤーを分離したままテンプレートにデータをロードするように指示する方法はありますか?

4

1 に答える 1

0

答えが出たと思います。私はまだこれをテストしていませんが、私はこの方法でそれを行うことができると思います。

まず、HTML5には、各タグにカスタムデータ属性を追加する機能があります。そのことを念頭に置いて、targetController名前付きのメソッドを持つクラスと、foo()すべてのリクエストに「Controller」という単語を追加するフロントコントローラーがある場合、次のことができます。

<select data-target="target" data-action="foo">
</select>

このようにして、ドキュメントがレンダリングされる前に、特定のコントローラーを呼び出して特定のアクションを呼び出すことができます。これで、通常の方法でテンプレートを含める代わりに、通常のリクエストとしてフロントコントローラーにコントローラーの読み込みを委任するDOMライブラリを介して、またはコントローラーの読み込みを行う可能性のあるクラスを介して、テンプレートを読み込むことができます。このように、私は何かをするためにjavascriptに依存する必要はありません。作業を開始したら、このソリューションを確実にテストします。

于 2013-01-27T09:16:55.077 に答える