Zend Frameworkルーターの使用例を詳しく解説

高洛峰
リリース: 2017-01-06 09:48:04
オリジナル
1266 人が閲覧しました

この記事の例では、Zend Framework ルーターの使用法について説明します。参考までに共有します。詳細は次のとおりです。

ルーティングは、URI のエンドポイント (ベース URL の URI 部分に続く) を削除し、それをパラメーターに分割して、どのモジュールがどのモジュールであるかを決定するプロセスです。コントローラーとどのアクションがリクエストを受け入れるか。

モジュール、コントローラー、アクション、およびそれらのパラメーターは Zend_Controller_Request_Http オブジェクトにパッケージ化されています。

ルーターの使用方法

ルーターを正しく使用するには、初期化する必要があります。

ルーターの作成は、フロントエンド コントローラー インスタンスの getRouter() メソッドを通じて実行できます。このメソッドにはパラメータは必要なく、このメソッドを実行すると Zend_Controller_Router_Rewrite オブジェクトを返すことができます。

ルーターを作成した後、いくつかのユーザー定義ルートを追加する必要があります。この操作は、Zend_Controller_Router_Rewrite オブジェクトの addRoute() メソッドを通じて実行できます。

コード:

<?php
/**
演示创建路由器的过程
*/
require_once &#39;Zend/Controller/Front.php&#39;;    //引用Zend_Controller_Front.php
$ctrl = Zend_Controller_Front::getInstance();  //创建一个前端控制器
$router = $ctrl->getRouter();          //返回一个默认路由,前端控制器功能很强大啊
$router->addRoute(&#39;user&#39;,new Zend_Controller_Router_Route(&#39;user/:username&#39;,array(&#39;controller&#39;=>&#39;user&#39;,&#39;action&#39;=>&#39;info&#39;)));
ログイン後にコピー

4つの基本ルート

1. デフォルトルート

定義: デフォルトルートは、RewriteRouterに保存されている「default」という名前の単純なZend_Controller_Router_Route_Moduleオブジェクトです。

2. 標準フレームワーク ルート

定義: Zend_Controller_Router_Route は標準フレームワーク ルートです。

例:

<?php
//定义标准框架路由
$route = new Zend_Controller_Router_Route(&#39;author/:username&#39;,
array(
  &#39;controller&#39;=>&#39;profile&#39;,
  &#39;action&#39;=>&#39;userinfo&#39;
));
//向路由器中添加定义的路由
$router->addRoute(&#39;user&#39;,$route);
ログイン後にコピー

注: めまいがすると言いましたが、ログのコーディングは簡単ではなく、よく理解できません。

3. 静的ルーティング

定義: Zend_Controller_Router_Route_Static を形成するように特定のルートが設定されます。

例:

<?php
//定义静态路由
$route = new Zend_Controller_Router_Route_Static(
&#39;login&#39;,
array(
  &#39;controller&#39;=>&#39;auth&#39;,
  &#39;action&#39;=>&#39;login&#39;
));
//向路由器中添加定义的路由
$router->addRoute(&#39;login&#39;,$route);
ログイン後にコピー

上記のルートは、http://domain.com/login の URL と一致し、それを AuthController::loginAction() メソッドにディスパッチします。

4. 正規表現ルーティング

Zend_Controller_Router_Route_Regex

ケース:

<?php
//正则表达式路由
$route = new Zend_Controller_Router_Route_Regex(
  &#39;archive/(\d+)&#39;,
  array(
    &#39;controller&#39;=>&#39;archive&#39;,
    &#39;action&#39;=>&#39;show&#39;
  ));
//向路由器中添加定义的路由
$router->addRoute(&#39;archive&#39;,$route);
ログイン後にコピー

分析:

正規表現ルート定義の最初のパラメータの動的部分 (「/」以降の内容) は、変数ですが、通常のサブパターンです。

この例では、http://domain.com/archive/2008 との一致に成功すると、次の結果値の配列が返されます。

$values = array(
1=>&#39;2008&#39;,
&#39;controller&#39;=>&#39;archive&#39;,
&#39;action&#39;=>&#39;show&#39;
);
ログイン後にコピー

追記:

コンセプトが多すぎて大変だと言いました。

この記事が、Zend Framework フレームワークに基づいた PHP プログラミングの皆様のお役に立てれば幸いです。

Zend Framework ルーターの使用例と関連記事の詳細については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート