Maison > php教程 > PHP开发 > le corps du texte

Explication détaillée des exemples d'utilisation du routeur Zend Framework

高洛峰
Libérer: 2017-01-06 09:48:04
original
1264 Les gens l'ont consulté

Les exemples de cet article décrivent l'utilisation du routeur Zend Framework. En le partageant avec vous pour votre référence, les détails sont les suivants :

Le routage est un processus dans lequel il supprime le point final de l'URI (après la partie URI de l'URL de base) et le divise en paramètres pour décider quel module, quel contrôleur et quelle action doit accepter la demande.

Les modules, contrôleurs, actions et leurs paramètres sont regroupés dans des objets Zend_Controller_Request_Http.

Utilisation du routeur

Afin d'utiliser correctement le routeur, il doit être initialisé.

La création d'un routeur peut être réalisée via la méthode getRouter() de l'instance du contrôleur frontal. Cette méthode ne nécessite aucun paramètre, et son exécution peut renvoyer un objet Zend_Controller_Router_Rewrite.

Après avoir créé le routeur, vous devez ajouter des routes définies par l'utilisateur. Cette opération peut être réalisée via la méthode addRoute() de l'objet Zend_Controller_Router_Rewrite.

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;)));
Copier après la connexion

4 itinéraires de base

1. Itinéraire par défaut

Définition : La route par défaut est un simple objet Zend_Controller_Router_Route_Module nommé 'default' stocké dans RewriteRouter.

2. Routage de framework standard

Définition : Zend_Controller_Router_Route est un routage de framework standard.

Exemple :

<?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);
Copier après la connexion

Remarque : j'ai dit que j'étais confus, le journal n'est pas facile à coder, et je ne le fais pas Je ne comprends pas bien.

3. Routage statique

Définition : Une route spécifique est définie pour former Zend_Controller_Router_Route_Static.

Exemple :

<?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);
Copier après la connexion

L'itinéraire ci-dessus correspondra à l'URL de http://domain.com/login et l'enverra à Dans la méthode AuthController::loginAction().

4. Routage d'expressions régulières

Zend_Controller_Router_Route_Regex

Cas :

<?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);
Copier après la connexion

Analyse :

La partie dynamique (contenu après "/") dans le premier paramètre de la définition de route d'expression régulière n'est plus une variable, mais un sous-modèle régulier.

Dans cet exemple, après avoir réussi à faire correspondre http://domain.com/archive/2008, le tableau suivant de valeurs de résultat sera renvoyé.

$values = array(
1=>&#39;2008&#39;,
&#39;controller&#39;=>&#39;archive&#39;,
&#39;action&#39;=>&#39;show&#39;
);
Copier après la connexion

Post-scriptum :

J'ai dit qu'il y avait trop de concepts et que c'était très difficile.

J'espère que cet article sera utile à la programmation PHP de chacun basée sur le framework Zend Framework.

Pour des exemples plus détaillés d'utilisation du routeur Zend Framework et des articles connexes, veuillez prêter attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal