⊗ppMVDFmRr 25 of 35 menu

Desarrollo de un enrutador en tu propio framework MVC

Ahora necesitas desarrollar un enrutador. Este representa una clase que tomará un array de rutas, tomará la URL solicitada, y determinará cuál de las rutas corresponde a dicha URL. Después de encontrar la ruta correspondiente, nuestra clase debe obtener las partes de la URL que corresponden a los parámetros de la ruta.

Como resultado, nuestro enrutador debe devolver un objeto de la clase Track, que contiene el nombre del controlador que debe ser invocado para esa solicitud, el nombre de la acción y los parámetros de la URL.

Deja que nuestra clase Track tenga las propiedades controller, action y params, accesibles solo para lectura:

<?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; } } ?>

Ejemplo

Por ejemplo, supongamos que en la barra de direcciones se ha ingresado /test/1/2/. Supongamos que tenemos una ruta, que corresponde a esta dirección:

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

Esto significa que el nombre del controlador será test, el nombre de la acción - index, y el array de parámetros será el siguiente:

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

El objetivo de esta lección es escribir la clase Router, que devuelve un objeto de la clase Track. El resto no nos concierne por ahora. Empecemos a escribir esta clase.

Tareas prácticas

Copia el código de mi clase Track y colócalo en el archivo /core/Track.php.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar