⊗ppMVDFmRr 25 of 35 menu

Ανάπτυξη δρομολογητή στο δικό σας MVC framework

Τώρα πρέπει να αναπτύξετε έναν δρομολογητή. Αυτός αντιπροσωπεύει μια κλάση που θα παίρνει έναν πίνακα διαδρομών, θα παίρνει το ζητούμενο URL, και θα προσδιορίζει ποια διαδρομή αντιστοιχεί σε αυτό το url. Αφού βρεθεί η αντίστοιχη διαδρομή, η κλάση μας πρέπει να λάβει τα μέρη του URL, που αντιστοιχούν στις παραμέτρους της διαδρομής.

Αφήστε τον δρομολογητή μας να επιστρέφει ένα αντικείμενο της κλάσης Track, που περιέχει το όνομα του ελεγκτή που πρέπει να κληθεί για αυτό το αίτημα, το όνομα της δράσης και τις παραμέτρους από το URL.

Αφήστε την κλάση μας Track να έχει ιδιότητες controller, action και params, προσβάσιμες μόνο για ανάγνωση:

<?php namespace Core; class Track { private $controller; private $action; private $params; public function __construct($controller, $action, $params) { $this->controller = $controller; $this->action = $action; $this->params = $params; } public function __get($property) { return $this->$property; } } ?>

Παράδειγμα

Για παράδειγμα, ας υποθέσουμε ότι στη γραμμή διευθύνσεων έχει εισαχθεί /test/1/2/. Ας υποθέσουμε ότι έχουμε μια διαδρομή, που αντιστοιχεί σε αυτή τη διεύθυνση:

<?php new Route('/test/:var1/:var2/', 'test', 'index'); ?>

Αυτό σημαίνει ότι το όνομα του ελεγκτή θα είναι test, το όνομα της δράσης - index, και ο πίνακας παραμέτρων θα είναι ο ακόλουθος:

<?php ['var1' => 1, 'var2' => 2] ?>

Στόχος αυτού του μαθήματος είναι να γράψετε την κλάση Router, που επιστρέφει ένα αντικείμενο της κλάσης Track. Τα υπόλοιπα δεν μας αφορούν προς το παρόν. Ας προχωρήσουμε στη συγγραφή αυτής της κλάσης.

Πρακτικές Ασκήσεις

Αντιγράψτε τον κώδικα της κλάσης μου Track και τοποθετήστε τον στο αρχείο /core/Track.php.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη