問題タブ [front-controller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - デザインパターン:フロントコントローラーのアンチテーゼは何ですか?
私は、すべてのイベント/リクエストが単一の集中型コントローラーを介して処理されるフロントコントローラーパターンに精通しています。
しかし、アプリケーションのさまざまな部分をプレゼンテーション層でも分離したい場合は、これを何と呼びますか?私が最初に考えたのは「ファサード」でしたが、それはまったく違うものであることがわかりました。
私の特定のケースでは、アプリケーションを広大な手続き型の混乱からクリーンなMVCアーキテクチャに変換していますが、これは長期的なプロセスです。残りの部分とのゆっくりとした統合を促進するために、物事を可能な限り分離しておく必要があります。システム。このアプリケーションはWebベースであり、PHPに組み込まれているため、たとえば、「index.php」とIndexController、「account.php」とAccountController、「dashboard.php」とDashboardControllerなどがあります。
php - 小規模サイトから中規模サイトへ
私はここ数年、主にphpとxhtmlでWebサイトをコーディングしています。私はデザインの世界から来ましたが、標準に準拠した Web サイトと優れたインターフェイスを作成できることを誇りに思っています。また、Wordpress を使用し、気に入りました。ほとんどの場合、すべてがゼロから行われる、データベースが含まれていない、非常に単純な商用 Web サイトがありました。すべてのページは index?page=xxx によって解析され、
しかし、大規模なウェブサイト (「中規模のウェブサイト」と呼びましょう) であるいくつかの見通しがあり、次の点が欠けていると感じています。
- ページをディスパッチまたはレンダリングする方法 (index?page=??? の代わりに MVC コントローラー)
- 適切なページ階層と簡単なブレッドクラムの実装
- ナビゲーションメニューの自動生成、またはそれらを維持する簡単な方法?
- きれいな URL
- フォームの検証
- 簡単なデータベースのサポート
PHPスクリプトを調べてスキルを磨くべきか、CMS(drupalなど)やPHPフレームワークに取り組むべきか、本当にわかりません。Wordpress は非常に安心感があり、クレイジーな慣習にとらわれているとは感じませんでしたが、これには適切なツールではないと感じています。私はすべてのページを手作業でコーディングすることに慣れているので、大きなテキストボックスのある CMS ページは嫌いです。私のページはタイトルとテキストボックスではありません。感じましたか?
私のPHPスキルはまだ中程度/低いですが、次のステップに進むために何を学ぶべきかについていくつか考えを聞きたいです!
php - すべてのフロント クラスでシングルトンを使用する必要がありますか?
Martin Fowler の Patterns Of Enterprise Application Architecture と Front Controller のパターンを考えてみましょう: http://martinfowler.com/eaaCatalog/frontController.html どうやらシングルトン パターンを使用しているようです。さて、私は連携して動作する PHP アプリケーションのクラスのパッケージ (Zend のコントローラー パッケージなど) を持っており、それらをすべて使用可能にする 1 つのクラスがあり、フロント コントローラーの概念の多くに似ているため、PackageName_Front という名前を付けました。しかし、(Front Controller とは対照的に) シングルトン クラスであってはなりません。そうでない場合、私はそれを何と名付けますか?これは非常に大きなパッケージであるため、他の開発者が読みやすいように (独断的な方法ではなく) 可能な限り慣習に従う必要があります。
詳細: コントローラーに関連するものではありません。これは Zend_Form のように機能する単なるオブジェクトです (Zend_Form_Element_X や Zend_Validate などの他のすべてのオブジェクトの使用を 1 つのオブジェクトに統合します)。それは PackageName_Something でなければなりません。たぶん「ハンドラー」?...誰かがその名前を読んだときに、パッケージ全体での役割について混乱しないようにしたいだけです:)
php - 現在のコントローラーを取得
現在のコントローラーに到達したい関数で:
これはハンドラーのみを提供し、現在のコントローラーは提供しません。
コードを関数からコントローラー内部に変更しました。getInstanceから取得したハンドラーとこれの両方の起源を尋ねました
私は得る:
実際に開始されたフロントコントローラーに到達するにはどうすればよいですか?
この関数は何兆回も使用されているため、パラメーターとして渡すことはできません。
zend-framework - Frontcontroller プラグインがロードされない
zend Frameworker で frontcontroller プラグインを使用すると、オートローダーの前に実行されるようです。どうすればいいですか?
私のapp.iniで
plugins/Routes.php
エラーメッセージ..
致命的なエラー: クラス 'Plugin_Routes' が /usr/share/php/Zend/Application/Resource/Frontcontroller.php の 111 行目に見つかりません
インクルードパスがまったくありませんか?
front-controller - JSPページのFrontController実装
JSPページが少ないシンプルなWebサイトを開発しています。各jspには動的データがあり、ブラウザーに再表示する前にXMLから読み取る必要があります。ここではStruts2などのMVCパターンの方が適切ですが、単純なWebアプリケーションには実装したくありません。
この目的のために、いくつかのヘルパークラスでjspページを管理するのに十分なFrontControllerパターンを実装したいと思います。
私が欲しいのは、すべてのJSPページに集中型コントローラーを用意することです。ユーザーがjspページにアクセスしようとすると、最初にコントローラーに移動する必要があります。そこで、URLパターン「/pages/*.jsp」を使用してサーブレットを実装しようとしました。ここで、/pagesにはWebコンテンツ内のすべてのjspページが含まれています。
問題は、.jspファイルの呼び出しがあるたびにコントローラーが呼び出されることですが、それをjspページ(例:/pages/homepage.jsp)にディスアッチしようとすると、無期限のループに入ります。各jspページ呼び出しが常に再びコントローラーに送られることは明らかです。
それで、この状況のために集中型コントローラーを実装できる他の方法はありますか?
前もって感謝します。
php - URIからページ番号とID番号を抽出するにはどうすればよいですか?
私は単一のエントリポイントであるindex.php?uriを介してサイト全体を読み込もうとしていますが、
私の目標はきれいなURLを作成することですが、これまでのところ...
domain.com/section-name/page-of-that-section
したがって、最初の部分はセクションのクラス/ファイル(メール、ユーザー、アカウントなど) をロードします
2番目の部分は、そのセクションのページのクラス/ページをロードします
これは非常に簡単で、これまでのところ簡単です。私にとってトリッキーな部分は、一部のページにID番号(ユーザーID、メッセージID、ブログID、フォーラムID、フォーラム投稿ID、フォーラムトピックIDなど)があり、これを使用してそのレコードを検索することです。 ID番号によるデータベース。
次に、一部のページには、ページングに使用されるページ番号もあります。
そのため、ページ番号が表示される場合と表示されない場合があります。これは、セクションに応じたID番号と同じです。
私は例、アドバイス、ページ番号とID番号の部分を機能させるためのヘルプを探しています。それらを取得して、変数$page_number と $id_numberに割り当てることができる必要があります。
以下は、これまでに使用したコードと、アクセスする必要のあるURLの例です。これには既存のフレームワークを使用したくありません。これを機能させることに近づいていると思われる場合は、助けてください。
現在、ID番号の前にid /を追加し、ページング番号の前にpage /を追加しました。これは、可能な限り何にでも変更できます(つまり、id-423423ページ-23ページ/23ページ23p / 23)。 PHPの変数に格納する数値を取得します
zend-framework - Zend Controller プラグイン内から View Object を取得する
私のコントローラーには、FlashMessenger メッセージを統合するための postDispatch があります。
これをControllerプラグインにしたい。
更新:なぜこれが必要なのかを理解しました.JSONコンテキストによって呼び出されたときにJSONでフラッシュメッセージを渡したい. メッセージが View オブジェクトに追加されない限り、メッセージを受け取りません。
メッセージを配列に入れることができましたが、それらをビューに渡す方法がわかりません:
おまけの質問 - これはこれを達成するための正しい方法ですか? ありがとう!
java - url-pattern "/*" で転送された JSP を表示する
Java のスキルを向上させるために、単純な j2ee フレームワーク (MVC) を構築しようとしています。
FrontServlet ですべてのリクエストを処理するように構築しました。私が使用したマッピングは次のとおりです。
私の問題は、FrontServlet から JSP にリクエストを転送すると、JSP リクエストが FrontServlet によって処理され、ビューがレンダリングされないことです。
- url-pattern "/*" を保持することで、この問題を解決するにはどうすればよいですか?
- パフォーマンスを低下させずにサーブレットで JSP をレンダリングする方法はありますか?
お返事ありがとうございます!
- 解決策 1 (@Bryan Kyle)
私はあなたのアドバイスに従おうとしています。このフィルターを作成しました:
- そうですか?
ありがとう !
asp.net-mvc-2 - フロントコントローラー、ページコントローラー?
フロントコントローラーとページコントローラーの違いは何ですか?どちらがベストか?