Die URL-Verwaltungskomponente bietet hauptsächlich zwei Funktionen:
1. Analysieren Sie anhand der vom Benutzer eingegebenen URL die Route für die Verarbeitung dieser Anfrage – welche Aktion von welchem Controller sie verarbeitet, und fügen Sie gleichzeitig die hinzu Parameterteil in der URL bis zum Parameter $_GET. In jedem Web-Framework wird eine solche Komponente benötigt, um Routenverteilungsarbeiten durchzuführen.
2. Erstellen Sie eine URL basierend auf der Route und dem Parameter-Array. Die URL kann in der Ansichtsschicht fest codiert werden, d. h. die URL-Adresse wird direkt geschrieben, was jedoch häufig an Flexibilität mangelt und Kosten für die spätere Wartung mit sich bringt.
array( 'components'=>array( 'urlFormat'=>'path', 'rules'=>array( '/art/<cate:\w+>/<key:\d+>/<id:\d+>/<p:\d+>'=>'article/<cate>/<key>', 'post/<id:\d+>/<title:.*?>'=>'post/view', '<controller:\w+>/'=>'<controller>/', ), ), );</action></controller></action:\w+></controller:\w+></title:.*?></id:\d+></key></cate></p:\d+></id:\d+></key:\d+></cate:\w+>
Das Obige ist die Konfiguration einer URL-Verwaltungskomponente mit insgesamt 3 Regeln. In der folgenden Abbildung wird die erste Regel als Beispiel verwendet, um die beiden Funktionen URL-Parsing und URL-Erstellung zu veranschaulichen. Für jede Routing-Regel erstellt CUrlManager ein CUrlRule-Objekt, um die beiden dieser Regel entsprechenden Funktionen zu verarbeiten. Wenn also mehrere Regeln vorhanden sind, gibt es mehrere CUrlRule-Objekte. CUrlRule ist also der Kern der URL-Verwaltung. Lassen Sie uns das Funktionsprinzip von CUrlRule analysieren.
Jede URL-Routing-Regel wird von einem CUrlRule-Objekt verarbeitet. Nehmen Sie als Nächstes die folgende Routing-Regel als Beispiel: '/art////'=>'article //', beschreibt den Verarbeitungsprozess der URL-Analyse und URL-Erstellung. Der Prozess der Verarbeitung von URLs durch jedes CUrlRule-Objekt kann in drei Phasen unterteilt werden:
1. Initialisieren des CUrlRule-Objekts
Im Konstruktor des CUrlRule-Objekts werden 6 wichtige Mitgliedsvariablen initialisiert:
Parsen der URL
Die Arbeit des Parsens der URL ist in drei Schritte unterteilt: a. Ersetzen Sie die Referenzfelder in der Route entsprechend den Referenzen. ;c. Fügen Sie die in params angegebenen Felder zum Array $_GET hinzu.
Die Arbeit zum Erstellen einer URL ist in drei Schritte unterteilt: a. Analysieren Sie jedes Feld in der Eingaberoute. b Ersetzen Sie das Eingabeparameter-Array und das im vorherigen Schritt analysierte Array.