⊗ppMVDFmDs 29 of 35 menu

Desarrollo de un Dispatcher en tu propio framework MVC

Recordemos el contenido actual del archivo index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // tu implementación de autocarga }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Como puedes ver, por ahora nuestro enrutador retorna un objeto de la clase Track, que contiene el nombre del controlador, el nombre de la acción y los parámetros de la cadena de consulta. Además, en la lección anterior creamos el padre de todos los controladores.

Ahora podemos hacer que se invoque el método del controlador, cuyos datos están contenidos en nuestra variable $track.

Esto lo hará una clase especial Dispatcher. El dispatcher obtendrá un objeto de la clase Track y, basándose en sus datos, creará un objeto de la clase especificada, invocará el método de esta clase, pasando los parámetros a este método.

Agreguemos la llamada al dispatcher en el archivo index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // tu implementación de autocarga }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Llamada al dispatcher: $page = ( new Dispatcher ) -> getPage($track); ?>

La llamada al método getPage de nuestro dispatcher invocará el método render del controlador y retornará lo que devuelva la llamada a este método. Como ya sabes por la lección anterior, el método render del controlador retorna un objeto de la clase Page.

Aquí tienes la plantilla de nuestra clase Dispatcher:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...código return controlador -> render(parámetros); } } ?>

Utilizando mi plantilla, implementa la clase Dispatcher descrita. Verifica su funcionamiento. Si tienes dificultades, revisa el código fuente en los archivos de mi framework educativo ya hecho.

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