1

ワイルドカードまたは正規表現を使用してホスト名に一致するルーターを Zend Framework で作成することは可能ですか (ホスト名に含まれる部分の数に関係なく)?

ホスト名に基づいて一致するルートを作成できます

   $externalHostname = new Zend_Controller_Router_Route_Hostname(
        'ext.mysite.com', array(
            'module'=> 'external',
    ));

しかし、次のようなことを達成したい場合はどうでしょうか。

   $externalHostname = new Zend_Controller_Router_Route_Hostname(
        'ext.*', array(
            'module'=> 'external',
    ));

「ext.」で始まるホスト名。ホスト名が持つサブドメインレベルの数に関係なく、「外部」モジュールにルーティングされるため、

  • ext.mysite.com
  • ext.test.mysite.com

両方一致します。

それはどのように達成できますか?

4

2 に答える 2

0

Zend_Controller_Router_Route_Hostnameではこれを実現できません。限られた数のサブドメインレベル(たとえば2〜4)のみを一致させることを意図している場合は、機能している可能性があります。この場合、ケースごとに複数のホスト名ルートを追加します。

しかし無制限-私はそうは思いません。

于 2012-02-28T09:23:37.120 に答える
0

Zend ルーターは何をしますか?

回答 : 基本的に、現在のモジュール/コントローラー/アクションを設定して、フロント コントローラーに伝えます。次に、フロント コントローラーは Zend Dispatcher に moduleFolder/controllerFolder に移動し、actionMethod を実行するように指示します。

これで、上記の状態を確認して、ルーターを手動で設定できます。

問題は、このルーターをどこで確認して設定する必要があるかということです。

解決策の 1 つは:- public/index.php ファイルでプラグイン $frontController->registerPlugin("my_router") のように登録でき、my_router は "Zend_Controller_Plugin_Abstract" を拡張する必要があります。この my_router クラス コンストラクター内で、独自のルーターを設定できます。

Zend Framework の基本フローを確認してください (リクエストを行うと、zend フレームワーク内で何が起こるのですか?)

于 2012-03-13T06:24:59.017 に答える