Maison  >  Article  >  cadre php  >  Configuration du routage dans le framework Yii : embellissement des URL

Configuration du routage dans le framework Yii : embellissement des URL

WBOY
WBOYoriginal
2023-06-21 15:59:001114parcourir

Avec le développement rapide d’Internet, l’expérience des utilisateurs en matière d’utilisation des sites Web s’améliore de plus en plus. Parmi eux, la forme de l'URL est progressivement devenue un facteur important permettant aux utilisateurs de juger de la qualité du site Web. Pour l'embellissement des URL, le framework Yii fournit une variété de solutions de configuration de routage. Cet article se concentrera sur la configuration du routage dans le framework Yii et sur la manière d'implémenter l'embellissement des URL.

1. Bases de la configuration du routage

Le routage fait référence au mappage de l'adresse URL demandée à des contrôleurs et à des méthodes spécifiques pour réaliser un traitement spécifique de la demande. Dans le framework Yii, la configuration du routage s'effectue via le gestionnaire d'URL (UrlManager). Le gestionnaire d'URL se trouve dans le dossier config du fichier de configuration de l'application, comme suit :

'components' => [
    'urlManager' => [
        'class' => 'yiiwebUrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            // ...
        ],
    ],
],

Parmi eux, enablePrettyUrl indique s'il faut activer les URL embellies. Il est recommandé de le définir sur true; <code>showScriptName indique s'il faut afficher le nom du fichier de script (tel que index.php) dans l'URL. Il est également recommandé de le définir sur false pour éviter d'affecter la beauté. de l'URL. enablePrettyUrl表示是否启用美化后的URL,建议设置为trueshowScriptName表示在URL中是否显示脚本文件名(如index.php),也建议设置为false,以免影响URL的美观度。

二、静态路由

静态路由是指可以将某个特定的URL地址直接映射到控制器和方法上。例如,我们可以将index.php?r=site/about这样的URL地址静态化为about,访问时直接输入http://yourdomain.com/about即可。

在Yii框架中,实现静态路由的方法如下:

'rules' => [
    'about' => 'site/about',
],

这里的about表示映射的URL地址,site/about则表示具体的控制器和方法。

三、动态路由

动态路由是指将带有参数的URL地址映射到控制器和方法上,并通过参数传递数据。例如,我们可以将index.php?r=site/view&id=1这样的URL地址动态化为view/1,访问时直接输入http://yourdomain.com/view/1即可。

在Yii框架中,实现动态路由的方法如下:

'rules' => [
    'view/<id:d+>' => 'site/view',
],

这里的view/3493f3358a126a26f38915ea72d0923c表示映射的URL地址,其中id是参数名,d+是匹配数字的正则表达式,site/view则表示具体的控制器和方法。

四、高级路由

高级路由是对静态和动态路由的扩展,可以实现更加复杂的URL映射。例如,我们可以将index.php?r=user/profile这样的URL地址转化为profile/username,访问时直接输入http://yourdomain.com/profile/admin即可。

在Yii框架中,实现高级路由的方法如下:

'rules' => [
    [
        'class' => 'yiiwebUrlRule',
        'pattern' => 'profile/<username:w+>',
        'route' => 'user/profile',
        'suffix' => '',
    ],
],

这里的'class' => 'yiiwebUrlRule'表示我们采用的是高级路由,'pattern' => 'profile/3b95aa1ce85f471b227ef3723047aeb2'表示URL地址的匹配规则,其中3b95aa1ce85f471b227ef3723047aeb2表示参数名和正则表达式,'route' => 'user/profile'表示具体的控制器和方法,'suffix' => ''

2. Routage statique

Le routage statique signifie qu'une adresse URL spécifique peut être directement mappée à un contrôleur et une méthode. Par exemple, nous pouvons convertir statiquement une adresse URL telle que index.php?r=site/about en about, et saisir directement http://votredomaine lorsque accéder à. com/about.

Dans le framework Yii, la méthode pour implémenter le routage statique est la suivante : 🎜rrreee🎜about représente ici l'adresse URL mappée, et site/about représente le contrôleur spécifique et méthode. 🎜🎜3. Routage dynamique 🎜🎜Le routage dynamique fait référence au mappage d'adresses URL avec des paramètres sur des contrôleurs et des méthodes, et à la transmission de données via des paramètres. Par exemple, nous pouvons convertir dynamiquement une adresse URL telle que index.php?r=site/view&id=1 en view/1, et saisir directement http lorsque accéder à : //votredomaine.com/view/1C'est tout. 🎜🎜Dans le framework Yii, la méthode pour implémenter le routage dynamique est la suivante : 🎜rrreee🎜Le view/3493f3358a126a26f38915ea72d0923c représente ici l'adresse URL mappée, où id est le nom du paramètre, d+ est une expression régulière correspondant aux nombres et site/view représente le contrôleur et la méthode spécifiques. 🎜🎜4. Routage avancé 🎜🎜Le routage avancé est une extension du routage statique et dynamique, qui peut réaliser un mappage d'URL plus complexe. Par exemple, nous pouvons convertir une adresse URL telle que index.php?r=user/profile en profile/username, et saisir directement http://votredomaine lors de l'accès à .com/profile/admin. 🎜🎜Dans le framework Yii, la méthode pour implémenter le routage avancé est la suivante : 🎜rrreee🎜Le 'class' => 'yiiwebUrlRule' signifie ici que nous utilisons le routage avancé, ' pattern' = > 'profile/3b95aa1ce85f471b227ef3723047aeb2' représente la règle de correspondance de l'adresse URL, où 3b95aa1ce85f471b227ef3723047aeb2 représente le nom du paramètre et expression régulière, 'route' => 'user/profile' représente des contrôleurs et des méthodes spécifiques, 'suffix' => '' représente des caractères supplémentaires à la fin de l'adresse URL. 🎜🎜Résumé🎜🎜Grâce à l'introduction ci-dessus, nous pouvons comprendre les méthodes de base de configuration du routage dans le framework Yii et leurs différences. Cependant, lors de la configuration du routage, vous devez faire attention à la beauté et à la lisibilité de l'adresse URL, et également prendre de bonnes dispositions pour les contrôleurs et méthodes sous-jacents. Ce n'est qu'en parvenant à un équilibre entre les deux aspects que l'adresse URL du site Web peut être mieux mappée à des contrôleurs et méthodes spécifiques dans différents scénarios, améliorant ainsi l'expérience du site Web. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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