⊗ppMVDFmDs 29 of 35 menu

自前のMVCフレームワークにおけるディスパッチャの開発

ファイル index.php の現在の内容を思い出しましょう:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // オートロードの実装 }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

ご覧の通り、今のところ私たちのルーターは、 コントローラ名、アクション名、およびURLからの パラメータを含む Track クラスのオブジェクトを 返します。さらに、前のレッスンでは すべてのコントローラの親クラスを作成しました。

これで、変数 $track に含まれる コントローラのメソッドを呼び出すことが できるようになります。

これを担当するのは特別なクラス Dispatcher です。 ディスパッチャは Track クラスのオブジェクトを受け取り、 そのデータに基づいて指定されたクラスのオブジェクトを 作成し、そのクラスのメソッドを呼び出し、 そのメソッドにパラメータを渡します。

ファイル index.php にディスパッチャの呼び出しを追加しましょう:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // オートロードの実装 }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // ディスパッチャの呼び出し: $page = ( new Dispatcher ) -> getPage($track); ?>

ディスパッチャのメソッド getPage の呼び出しは、 コントローラのメソッド render を呼び出し、 そのメソッドの呼び出しが返すものを返します。 前のレッスンですでに学んだように、 コントローラのメソッド renderPage クラスのオブジェクトを返します。

以下が私たちの Dispatcher クラスのテンプレートです:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...コード return コントローラ -> render(パラメータ); } } ?>

私のテンプレートを使用して、説明された Dispatcher クラスを実装してください。その動作を確認してください。 困難な場合は、私が作成した学習用フレームワークの ファイル内のソースコードを参照してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否