Le système de routage de MVC offre la flexibilité de la mappage de l'URL vers le fonctionnement du contrôleur. Lors de la création d'un CMS personnalisé, la définition du niveau de chemin personnalisé est essentielle pour permettre aux utilisateurs de spécifier la structure URL.
Réécriture du mécanisme de routage
Pour cette raison, nous pouvons créer une sous-classe Routebase personnalisée , qui traitera l'analyse de l'URL. Cette classe d'enfants définit deux méthodes:
, il mappe l'URL transmise à l'objet Routedata; et, il génère l'URL en fonction de la valeur de routage. CustomPageRoute
GetRouteData
correspondant au niveau de chemin personnalisé GetVirtualPath
Dans , nous analysons les URL qui sont introduites et interrogeant la liste de la page pour trouver la correspondance correspondante en fonction du chemin virtuel spécifié. Si vous le trouvez, nous créons un objet RouteData contenant un contrôleur, un fonctionnement et une valeur de routage appropriés. Sinon, nous revenons à NULL pour permettre d'autres itinéraires. Générer un chemin virtuel
GetRouteData
Il est utilisé pour générer une URL en fonction de la valeur de routage. Il recherche la page correspondante dans la liste ci-dessus.
Enregistrement et configuration
Pour enregistrer ce routage personnalisé, nous l'ajoutons à la RouteCollection et configurons le MVC pour utiliser le routage qui distingue le cas. Ensuite, nous définissons un itinéraire par défaut pour la préparation.
GetVirtualPath
Le contrôleur implémente
Dans la personnalité , nous définissons une opération
, qui présente la présentation de la page de la page de traitement des paramètres ID en fonction du paramètre ID de la clé principale de la page.En utilisant des sous-classes de base de route personnalisées, nous pouvons nous adapter de manière transparente aux niveaux de chemin personnalisés dans l'application MVC, afin de créer des CMS flexibles et personnalisées.
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!