CAPÍTULO IV



Implementación del Front

Para la implementación del front, a diferencia del back, no vamos a usar componentes, usaremos módulos

Usará el patrón arquitectónico MVC como base de cada módulo.


El archivo index.php del sitio web recibe el GET de la url y llama a la página en cuestión por el primer argumento.  


Nuestro index.php será relativamente sencillo, lo que hará será incluir la página en cuestión que se solicita, y es ésta quien tendrá la magia dentro y hará todas las llamadas los módulos que contenga, los cuales son los que tienen propiamente el modelo MVC. Cada módulo tiene el método run heredado, y es usado por la página para su creación.

El sistema analiza la url que viene en el  request de la petición,  si el primer argumento es una página que existe, la incluye e interpreta.


PÁGINA      →     CARGA DE MODULOS    →    RESPONSE HTML


   public function procesarPlantilla(){

       

       $plantilla = file_get_contents($this->rutaPlantilla);

       preg_match_all('/\[\[.*\]\]/i', $plantilla, $this->_modulos);

       $this->_modulos = $this->cargaModulos($this->_modulos[0]);

       

       if($this->_modulos = $this->procesaModulos($this->_modulos))

           foreach($this->_modulos as $mod)

               $plantilla = str_replace($mod->string,$mod->buffer, $plantilla);

       

       $this->SetPlantillaProcesada($plantilla);

   }

 

 

En el extracto de código anterior, se puede observar como se buscan los módulos contenidos en la página, con la expresión regular, tratando de obtener cadenas como esta, ‘[[noticias::index::ultimahora]]’. Una vez procesados cada uno de los módulos, reemplaza esas cadenas por el buffer obtenido en la salida del método run de cada uno de esos módulos.


La cuestión de las páginas y el selector de página es muy práctico. Hacemos el código más humano, organizándolo en archivos los cuáles incluyen llamadas a los módulos, tal y como lo vemos en la web.


Además, con este nivel de encapsulamiento y organización, poniendo como ejemplo la implementación de un sistema de caché, podría efectuarse en diferentes jerarquías superiores, a nivel de página e incluso de módulo. En este caso, se he implementado a nivel de página en el propio index.php, pero el sistema está preparado para implementarlo a nivel de módulo. Este uso podría ser adecuado para sistemas que no pueden cachear determinadas áreas, como la zona de usuario, etc.





Cabecera CMSUM