上記記事に続きます
コードを投稿します
setRequest($request) これは、リクエストが Zend_Controller_Request_Abstract から継承されているかどうかを判断するためのもので、そうである場合は、front の _request の値をそれに割り当てます。
ここでは、Zend_Controller_Request_Abstract が何であるかを理解する必要があります。これは、すべてのリクエストを抽象化する抽象クラスです。 Zend は、Zend_Controller_Request_Http と Zend_Controller_Request_Simple という 2 つの実装クラスを提供しています。通常、サーバーを構築するときは http リクエストを使用するため、プロジェクトが再度継承する必要がある場合、通常は Zend_Controller_Request_Http を直接継承します。
Zend_controller_Request_Http では、よく使用する getQuery、getCookie、getRequestUri、getBasePath、getParams、getHeader などの通常の Http オプションがすでに利用可能です。基本クラス Zend_Controller_Request_Abstract について引き続き説明します。このクラスのメソッドは次のとおりです。
コードに戻る
setRequestUri から学べることは、http://172.23.11.160/usvn/item/usvn_test この URL、そのrequestUri は /usvn/item/usvn_test です
$front->throwExceptions(true); 内部の _throwExceptions フラグを true に設定します。
$front->setbaseUrl("/usvn") は 2 つのことを行います。まず、front の内部 _baseUrl 属性を設定します。次に、Request の setBaseUrl を呼び出します。これにより、Zend_Controller_Request_Http の内部 _baseUrl 属性も設定されます。
$router = 新しい Zend_Controller_Router_Rewrite();
$routes_config = 新しい USVN_Config_Ini(USVN_ROUTES_CONFIG_FILE, USVN_CONFIG_SECTION);
$router->addConfig($routes_config, 'routes');
$front->setRouter($router);
実際、次の 3 行は、Zend の Router モジュールを使用して設定ファイルを使用し、先頭に配置されています。
最後の文
この機能は最もコアな機能でもあります。
この関数は、最初にプラグイン Zend_Controller_Plugin_ErrorHandler をインデックス 100 で登録し、最後にプラグインの順序を置きます。
2 番目のステップでは、ヘルパー Zend_Controller_Action_Helper_ViewRenderer をインデックス -80 で保存します
リクエストは以下でインスタンス化され、リクエストは Zend_Controller_Request_Http タイプです。そして、リクエストのbaseUrlを、以前に設定した_baseUrl、つまり「/usvn/item/usvn_test」に設定します
その後、応答がインスタンス化され、応答は Zend_Controller_Response_Http();
になります。以下ではプラグインを使用してリクエストとレスポンスを設定します。まず、Zend_Controller_Plugin_Broker の setRequest 関数が実際に呼び出され、ブローカーによって管理されるすべてのプラグインをループし、プラグインの setRequest($request) 関数を呼び出します。
次に、ルーターを初期化し、ルーターのパラメータを設定します。ルーターは以前に設定されており、Zend_Controller_Router_Rewrite タイプです
ディスパッチャ Dispatcher を初期化します。初めてディスパッチャである Zend_Controller_Dispatcher_Standard クラスを確認します。販売代理店については後述します。
次のプロセス:
プラグインのrouteStartupを呼び出してリクエストを処理します
ルーターのルートを呼び出してリクエストを処理します
プラグインのrouteShutdownを呼び出してリクエストを処理します
プラグインのdispatchLoopStartupを呼び出してリクエストを処理します
サイクル配布プロセスに入る
プラグインの preDispatch を呼び出してリクエストを処理します
リクエストとレスポンスを処理するためにディスパッチャのディスパッチを呼び出します
プラグインの postDispatch を呼び出してリクエストを処理します
ループ配信プロセスから抜け出す
プラグインのdispatchLoopShutdownを呼び出してリクエストを処理します
返信を送信
http://www.bkjia.com/PHPjc/326856.html