この記事の例では、Zend Framework ルーターの使用法について説明します。参考までに共有します。詳細は次のとおりです。
ルーティングは、URI のエンドポイント (ベース URL の URI 部分に続く) を削除し、それをパラメーターに分割して、どのモジュールがどのモジュールであるかを決定するプロセスです。コントローラーとどのアクションがリクエストを受け入れるか。
モジュール、コントローラー、アクション、およびそれらのパラメーターは Zend_Controller_Request_Http オブジェクトにパッケージ化されています。
ルーターの使用方法
ルーターを正しく使用するには、初期化する必要があります。
ルーターの作成は、フロントエンド コントローラー インスタンスの getRouter() メソッドを通じて実行できます。このメソッドにはパラメータは必要なく、このメソッドを実行すると Zend_Controller_Router_Rewrite オブジェクトを返すことができます。
ルーターを作成した後、いくつかのユーザー定義ルートを追加する必要があります。この操作は、Zend_Controller_Router_Rewrite オブジェクトの addRoute() メソッドを通じて実行できます。
コード:
<?php /** 演示创建路由器的过程 */ require_once 'Zend/Controller/Front.php'; //引用Zend_Controller_Front.php $ctrl = Zend_Controller_Front::getInstance(); //创建一个前端控制器 $router = $ctrl->getRouter(); //返回一个默认路由,前端控制器功能很强大啊 $router->addRoute('user',new Zend_Controller_Router_Route('user/:username',array('controller'=>'user','action'=>'info')));
4つの基本ルート
1. デフォルトルート
定義: デフォルトルートは、RewriteRouterに保存されている「default」という名前の単純なZend_Controller_Router_Route_Moduleオブジェクトです。
2. 標準フレームワーク ルート
定義: Zend_Controller_Router_Route は標準フレームワーク ルートです。
例:
<?php //定义标准框架路由 $route = new Zend_Controller_Router_Route('author/:username', array( 'controller'=>'profile', 'action'=>'userinfo' )); //向路由器中添加定义的路由 $router->addRoute('user',$route);
注: めまいがすると言いましたが、ログのコーディングは簡単ではなく、よく理解できません。
3. 静的ルーティング
定義: Zend_Controller_Router_Route_Static を形成するように特定のルートが設定されます。
例:
<?php //定义静态路由 $route = new Zend_Controller_Router_Route_Static( 'login', array( 'controller'=>'auth', 'action'=>'login' )); //向路由器中添加定义的路由 $router->addRoute('login',$route);
上記のルートは、http://domain.com/login の URL と一致し、それを AuthController::loginAction() メソッドにディスパッチします。
4. 正規表現ルーティング
Zend_Controller_Router_Route_Regex
ケース:
<?php //正则表达式路由 $route = new Zend_Controller_Router_Route_Regex( 'archive/(\d+)', array( 'controller'=>'archive', 'action'=>'show' )); //向路由器中添加定义的路由 $router->addRoute('archive',$route);
分析:
正規表現ルート定義の最初のパラメータの動的部分 (「/」以降の内容) は、変数ですが、通常のサブパターンです。
この例では、http://domain.com/archive/2008 との一致に成功すると、次の結果値の配列が返されます。
$values = array( 1=>'2008', 'controller'=>'archive', 'action'=>'show' );
追記:
コンセプトが多すぎて大変だと言いました。
この記事が、Zend Framework フレームワークに基づいた PHP プログラミングの皆様のお役に立てれば幸いです。
Zend Framework ルーターの使用例と関連記事の詳細については、PHP 中国語 Web サイトに注目してください。