ホームページ php教程 PHP开发 Zend Frameworkルーターの使用例を詳しく解説

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

Jan 06, 2017 am 09:48 AM

この記事の例では、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 サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)