Heim  >  Artikel  >  php教程  >  Ausführliche Erläuterung der Anwendungsbeispiele für Zend Framework-Router

Ausführliche Erläuterung der Anwendungsbeispiele für Zend Framework-Router

高洛峰
高洛峰Original
2017-01-06 09:48:041208Durchsuche

Die Beispiele in diesem Artikel beschreiben die Verwendung des Zend Framework-Routers. Die Details lauten wie folgt:

Routing ist ein Prozess, bei dem der Endpunkt des URI (der dem URI-Teil der Basis-URL folgt) entfernt und in Parameter zerlegt wird Entscheiden Sie, welches Modul, welcher Controller und welche Aktion die Anfrage annehmen soll.

Module, Controller, Aktionen und ihre Parameter werden in Zend_Controller_Request_Http-Objekte gepackt.

Verwendung des Routers

Um den Router richtig nutzen zu können, muss er initialisiert werden.

Das Erstellen eines Routers kann über die Methode getRouter() der Front-End-Controller-Instanz erfolgen. Diese Methode erfordert keine Parameter und die Ausführung dieser Methode kann ein Zend_Controller_Router_Rewrite-Objekt zurückgeben.

Nachdem Sie den Router erstellt haben, müssen Sie einige benutzerdefinierte Routen hinzufügen. Dieser Vorgang kann über die addRoute()-Methode des Zend_Controller_Router_Rewrite-Objekts erreicht werden.

Code:

<?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 Grundrouten

1. Standardroute

Definition: Die Standardroute ist ein einfaches Zend_Controller_Router_Route_Module-Objekt mit dem Namen „default“, das in RewriteRouter gespeichert ist.

2. Standard-Framework-Routing

Definition: Zend_Controller_Router_Route ist ein Standard-Framework-Routing.

Beispiel:

<?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);

Hinweis: Ich sagte, dass ich verwirrt war, das Protokoll nicht einfach zu codieren ist und ich nicht Ich verstehe es nicht gut.

3. Statisches Routing

Definition: Eine bestimmte Route wird so eingestellt, dass sie Zend_Controller_Router_Route_Static bildet.

Beispiel:

<?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);

Die obige Route gleicht die URL von http://domain.com/login ab und sendet sie an In der AuthController::loginAction()-Methode.

4. Routing regulärer Ausdrücke

Zend_Controller_Router_Route_Regex

Fall:

<?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);

Analyse:

Der dynamische Teil (Inhalt nach „/“) im ersten Parameter der Routendefinition für reguläre Ausdrücke ist keine Variable mehr, sondern ein reguläres Untermuster.

In diesem Beispiel wird nach erfolgreichem Abgleich von http://domain.com/archive/2008 das folgende Array von Ergebniswerten zurückgegeben.

$values = array(
1=>&#39;2008&#39;,
&#39;controller&#39;=>&#39;archive&#39;,
&#39;action&#39;=>&#39;show&#39;
);

Nachtrag:

Ich sagte, es gäbe zu viele Konzepte und es sei sehr schwierig.

Ich hoffe, dass dieser Artikel für jedermann bei der PHP-Programmierung auf Basis des Zend Framework-Frameworks hilfreich sein wird.

Ausführlichere Beispiele für die Verwendung von Zend Framework-Routern und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn