SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Elaborado por: Ing Ligia Duran
Elaborado por: Ing Ligia Duran
MODELO- VISTA - CONTROLADOR
El usuario que se encuentra del lado cliente a través de la aplicación
hace una petición que debe pasar por el primer filtro que es la vista lo que
Elaborado por: Ing Ligia Duran
puede visualizar el usuario, ese primer filtro puede hacer una serie de
validaciones del lado del cliente que se pueden hacer con javascripts,
funciones que se retornen para poder mostrar al usuario que la información
que esta mostrando esta correcta.
Después de la petición que el usuario hace la petición y se cumplen
las validaciones pasa a la segunda capa que es el controlador, hace la
validación del lada del servidor verifica la solicitud del cliente y si es valida
pasa a la tercera capa que es el modelo y decide que debe hacer con esa
información si es para generar una interacción si debe ir a la base de datos y
seleccionar un dato. Luego que el modelo ejecuta las solicitudes esta
respuesta se devuelve al controlador y el controlador muestra la solicitud a
través de la vista. Y el usuario revisa la respuesta.
Con este modelo se protege la base de datos y el usuario vea el
resultado final a través de la vista, se recomienda trabajar con este patrón
cuando se trabaja con seguridad informática, ya que ofrece mejor protección
a los datos del sistema.
Para ello se debe utilizar la Programación Orientada a Objeto, porque se va
instanciar y heredar clases que se van a ver reflejadas en la vistas y usadas
por el modelo y el controlador.
A continuación se detalla cómo aplicar este patrón:
Crear tres carpetas con lo siguiente Modelo, Vista Controlador en la carpeta
del localhost.
Luego utilizando el sublime text
Elaborado por: Ing Ligia Duran
Se crea un archivo index.php fuera de las carpetas creadas anteriormente,
este archivo se encargara de mostrar la salida de las visitas al usuario y
también se envían las distintas acciones que el usuario envié al controlador.
Ahora se crea un archivo con el nombre plantilla.php, que se encargara de
tener la información de la vista del usuario cuando comience a interactuar.
Elaborado por: Ing Ligia Duran
Ahora para llamar plantilla.php, dentro de index.php, se crea el archivo
controlador.php y se coloca lo siguiente.
Elaborado por: Ing Ligia Duran
El controlador.php va iniciar con una clase que se llame MvcControlador que
tiene una función pública que se llamara plantilla, luego a través del método
include que permite incluir un archivo dentro de otro se llama el archivo
plantilla.php, y que muestre el código de plantilla.php, ahora en index.php se
crea el objeto partiendo de la clase MvcControlador y se le pide que llame a
la función plantilla() porque se esta haciendo una instancia del controlador. Y
para que conecte se utiliza el método requiere, que se utiliza para que
requiera el archivo Controlador.php, para ser ejecutado.
Ahora probamos en el navegador,
Elaborado por: Ing Ligia Duran
Hasta, ahora no tiene estilos, y le deben agregar los de su preferencia.
Si visualizan el código fuente desde el navegador no visualizaran ninguno de
los archivos del controlador y la vista.
Elaborado por: Ing Ligia Duran
Hasta ahora solo se ha trabajado con la vista y el controlador, el
usuario envía solicitud por la vista el controlador la ejecuta y envía la
respuesta mediante la vista. Y se protegen y se encapsula la información
mediante este patrón.
Es importante resaltar la función del require_once() funciona de las
misma forma que los demás, salvo que se impide la carga de un mismo
archivo más de una vez. Si requerimos el archivo más de una vez se corre el
riesgo de redeclarar variables, funcione y clases.
Se agrega el archivo de estilos.css
Elaborado por: Ing Ligia Duran
Se agrega en el head el siguiente link para llamar a los estilos de la pagina
<link rel="stylesheet" type="text/css" href="Vista/estilos.css">
Y se visualizara de la siguiente manera:
Elaborado por: Ing Ligia Duran
Ahora se va modularizar el sistema y creamos una carpeta llamada modulo. y
el archivo menu.php, extrayendo la información del nav de la plantilla.php.
como se muestra en la siguiente imagen.
Luego donde se encontraba el código del menú se hace el llamado con el
método include() al archivo menú.php.
<?php
include "Modulos/menu.php";
?>
Quedando plantilla.php de la siguiente manera
Elaborado por: Ing Ligia Duran
La finalidad de esta distribuir de esta manera el menú es que lo puedes
incluir en varias vistas con el mismo código.
Lo mismo va ocurrir con la section se dejara vacio y se crean los archivos,
inicio.php, contacto.php, servicios.php y nosotros.php, donde se colocara la
etiqueta h1 que estaba en el section de platntilla.php.
Elaborado por: Ing Ligia Duran
A continuación como se visualizaran estos módulos a través de la variable
GET, que son variables enviadas a través de la URL, canal de comunicación
que permite PHP y están variables se indentifican con el símbolo ?, el nombre
de la variable y se le debe asignar hacia donde se debe dirigir (a que archivo).
En este caso se debe modificar el archivo menú.php
Elaborado por: Ing Ligia Duran
En la parte de abajo y se visualiza la dirección que se le asigno en el
menú y al dar click se visualiza en el URL, de esta manera se crea un enlace
con variable GET.
Se debe tomar en cuenta que no se debe usar esta variable GET,
para contraseñas, solo son usadas para navegar.
Esta variable la recibe el controlador y se va recibir mediante una
función pública enlacesPainaControlador(), mediante una variable recibirá lo
que envie GET con la variable action y para poner en funcionamiento se
debe hacer lo siguiente:
public function enlacesPaginasControlador(){
$enlaces = $_GET["action"];
echo $enlaces;
}
}
Elaborado por: Ing Ligia Duran
Y quedaría de la siguiente manera el archivo controlador.php
Y en el section del archivo plantilla.php se colocara lo siguiente, se crea la
variable $mvc que se encargara de mostrar cuando se le da click al menú.
Elaborado por: Ing Ligia Duran
Y si ejecutamos el sistema en el localhost se muestra de la siguiente manera
Aquí me esta mostrando con echo el valor de la variable no el
archivo que debe mostrar el menú.
A continuación se mostrara como llamar a los archivos inicio.php,
nosotros.php, servicios.php y contacto.php
Para esto enviaremos al modelo para que haga la iteración, se debe crear el
archivo modelo.php dentro de la carpeta Modelo y creamos una Clase
EnlacesPaginas(), con una función enlacesPainaModelo(), con parámetros y
para poder recibir el valor de la variable $enlaces se debe crear en la función
enlacesPainaControlador(), una variable respuesta, el cual heredar la
función enlacesPaginasModelo. A continuación se visualiza el código. Y para
que funcione se debe invocar desde el index.php o el controlador del archivo
modelo.php, en este caso se invocara desde el index.php de la siguiente
manera.
Require_once”Modelo/Modelo.php”
Así queda el archivo controlador.php
Elaborado por: Ing Ligia Duran
Y el Modelo.php
Ahora luego de recibir la variable debemos validar en el archivo modelo.php
Elaborado por: Ing Ligia Duran
Modificamos la clases EnlacesPaginas aregando una condición para poder
ejecutar los archivo, inicio.php, contacto.php, servicios.php y nosotros.php
if ($enlacesModelo == "inicio" ||
$enlacesModelo == "nosotros" ||
$enlacesModelo == "servicios" ||
$enlacesModelo == "contactenos"){
$modulo = "Vista/Modulos/".$enlacesModelo.".php";
}
Y retorna la variable modulo y se no enlacesModelo
return $modulo;
y queda de la siguiente manera
Elaborado por: Ing Ligia Duran
Ahora para que se muestren las paginas solicitada se le agrega un include $respuesta al
archivo controlador.php
Listo la pagina interactiva de contenidos modulares en modelo vista controlador se
procede a limpiar la URL, pero se encontrara un pequeño problema cuando se vuelva a
ingresar al index.php, y genera este error.
Elaborado por: Ing Ligia Duran
Porque todo lo estamos llamando con la GET action y no aparece en el index.php,
debemos limpiar la URL, a continuación se detalla.
Se procede a modificar el controlador.php, utilizando el método isset que trae contenido,
modificando la función function enlacesPaginasControlador() colocando un condicional
que verifique si la variable action tiene información y si no que ejecute el index.php y que
el archivo quedaría de la siguiente manera:
Elaborado por: Ing Ligia Duran
Ahora en el archivo modelo.php se colocara una condición que verifique si se esta
llamando al index para que lo ejecute,
Se elimina del primer condicional el llamado de la página de inicio, y si la
variable action retorna vacía se ejecuta el else y muestra la página de Inicio.
Ahora vamos a crear una lista blanca y una lista negra, la primera significa hacer una
restricción de solo los enlaces permitidos y la negra es hacer una lista de la palabras no
permitidas, por ahora vamos a utilizar la lista blanca.
La creamos agregando al modelo.php en el condicional un else tal como
class EnlacesPaginas{
public function EnlacesPaginasModelo($enlacesModelo){
if ($enlacesModelo == "inicio" ||
$enlacesModelo == "nosotros" ||
$enlacesModelo == "servicios" ||
$enlacesModelo == "contacto"){
$modulo = "Vista/Modulos/".$enlacesModelo.".php";
}
Elaborado por: Ing Ligia Duran
else if($enlacesModelo == "index"){
$modulo = "Vista/Modulos/inicio.php";
}
else{
$modulo = "Vista/Modulos/inicio.php"; //con esta instrucción se agrea la lista blanca
}
return $modulo;
}
}
Ejemplo si en la URL reemplazamos inicio por chicas nos ejecutara la pagina de inicio.
Si colocamos servicios muestra la paina servicio.

Weitere ähnliche Inhalte

Ähnlich wie Conociendo el Patron Modelo Vista Controlador

WPF Series - 01
WPF Series - 01WPF Series - 01
WPF Series - 01
kazcorp
 
Manual de administracion de Wordpress
Manual de administracion de WordpressManual de administracion de Wordpress
Manual de administracion de Wordpress
mateitoo1Mh
 

Ähnlich wie Conociendo el Patron Modelo Vista Controlador (20)

Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Doctrine symfony
Doctrine symfonyDoctrine symfony
Doctrine symfony
 
Doctrine symfony
Doctrine symfonyDoctrine symfony
Doctrine symfony
 
Taller desarrollo web
Taller  desarrollo webTaller  desarrollo web
Taller desarrollo web
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Mvc
MvcMvc
Mvc
 
3. consultar datos
3.  consultar datos3.  consultar datos
3. consultar datos
 
Primera_Aplicación_Python_Django_Postgresql_Fedora_19
Primera_Aplicación_Python_Django_Postgresql_Fedora_19Primera_Aplicación_Python_Django_Postgresql_Fedora_19
Primera_Aplicación_Python_Django_Postgresql_Fedora_19
 
Programación orientada a objetos II
Programación orientada a objetos IIProgramación orientada a objetos II
Programación orientada a objetos II
 
WPF Series - 01
WPF Series - 01WPF Series - 01
WPF Series - 01
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Proyecto web Php-MySQL-Ajax-Flex
Proyecto web Php-MySQL-Ajax-FlexProyecto web Php-MySQL-Ajax-Flex
Proyecto web Php-MySQL-Ajax-Flex
 
Funciones
FuncionesFunciones
Funciones
 
Php curso02
Php   curso02Php   curso02
Php curso02
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHP
 
Empezando con Play y reactive mongo (Segundo meetup Scala Perú Dec 2015)
Empezando con Play y reactive mongo (Segundo meetup Scala Perú Dec 2015)Empezando con Play y reactive mongo (Segundo meetup Scala Perú Dec 2015)
Empezando con Play y reactive mongo (Segundo meetup Scala Perú Dec 2015)
 
Manual de administracion de Wordpress
Manual de administracion de WordpressManual de administracion de Wordpress
Manual de administracion de Wordpress
 

Mehr von lissette_torrealba

Mehr von lissette_torrealba (20)

Guia reportes
Guia reportesGuia reportes
Guia reportes
 
Guiajquery
GuiajqueryGuiajquery
Guiajquery
 
Plan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoríaPlan de evaluación proyecto i 2 teoría
Plan de evaluación proyecto i 2 teoría
 
Plan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodologíaPlan de evaluación proyecto i 2 metodología
Plan de evaluación proyecto i 2 metodología
 
Plan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 prácticaPlan de evaluacion proyecto i 2 práctica
Plan de evaluacion proyecto i 2 práctica
 
Guiajsvalidacion
GuiajsvalidacionGuiajsvalidacion
Guiajsvalidacion
 
Guiajs2
Guiajs2Guiajs2
Guiajs2
 
Rubrica 2021 electiva 2
Rubrica 2021 electiva 2Rubrica 2021 electiva 2
Rubrica 2021 electiva 2
 
Mapa Tecnopedagogia
Mapa TecnopedagogiaMapa Tecnopedagogia
Mapa Tecnopedagogia
 
Matriz DOFA lissette
Matriz DOFA lissetteMatriz DOFA lissette
Matriz DOFA lissette
 
Planevaluacionproyectoivpractica
PlanevaluacionproyectoivpracticaPlanevaluacionproyectoivpractica
Planevaluacionproyectoivpractica
 
Rubrica bd 2021
Rubrica  bd  2021Rubrica  bd  2021
Rubrica bd 2021
 
Proyecto formativo iv metodologia
Proyecto formativo iv metodologiaProyecto formativo iv metodologia
Proyecto formativo iv metodologia
 
Plan evaluacion teoria
Plan evaluacion teoriaPlan evaluacion teoria
Plan evaluacion teoria
 
Plan de Evaluacion
Plan de EvaluacionPlan de Evaluacion
Plan de Evaluacion
 
Ejemplos de interfaz grafica
Ejemplos de  interfaz grafica Ejemplos de  interfaz grafica
Ejemplos de interfaz grafica
 
Rubrica bd 2021
Rubrica bd 2021 Rubrica bd 2021
Rubrica bd 2021
 
Rubrica Programación II 2021
Rubrica Programación II 2021 Rubrica Programación II 2021
Rubrica Programación II 2021
 
Rup
RupRup
Rup
 
Documentosistema
DocumentosistemaDocumentosistema
Documentosistema
 

Kürzlich hochgeladen

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Kürzlich hochgeladen (20)

ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 

Conociendo el Patron Modelo Vista Controlador

  • 1. Elaborado por: Ing Ligia Duran
  • 2. Elaborado por: Ing Ligia Duran MODELO- VISTA - CONTROLADOR El usuario que se encuentra del lado cliente a través de la aplicación hace una petición que debe pasar por el primer filtro que es la vista lo que
  • 3. Elaborado por: Ing Ligia Duran puede visualizar el usuario, ese primer filtro puede hacer una serie de validaciones del lado del cliente que se pueden hacer con javascripts, funciones que se retornen para poder mostrar al usuario que la información que esta mostrando esta correcta. Después de la petición que el usuario hace la petición y se cumplen las validaciones pasa a la segunda capa que es el controlador, hace la validación del lada del servidor verifica la solicitud del cliente y si es valida pasa a la tercera capa que es el modelo y decide que debe hacer con esa información si es para generar una interacción si debe ir a la base de datos y seleccionar un dato. Luego que el modelo ejecuta las solicitudes esta respuesta se devuelve al controlador y el controlador muestra la solicitud a través de la vista. Y el usuario revisa la respuesta. Con este modelo se protege la base de datos y el usuario vea el resultado final a través de la vista, se recomienda trabajar con este patrón cuando se trabaja con seguridad informática, ya que ofrece mejor protección a los datos del sistema. Para ello se debe utilizar la Programación Orientada a Objeto, porque se va instanciar y heredar clases que se van a ver reflejadas en la vistas y usadas por el modelo y el controlador. A continuación se detalla cómo aplicar este patrón: Crear tres carpetas con lo siguiente Modelo, Vista Controlador en la carpeta del localhost. Luego utilizando el sublime text
  • 4. Elaborado por: Ing Ligia Duran Se crea un archivo index.php fuera de las carpetas creadas anteriormente, este archivo se encargara de mostrar la salida de las visitas al usuario y también se envían las distintas acciones que el usuario envié al controlador. Ahora se crea un archivo con el nombre plantilla.php, que se encargara de tener la información de la vista del usuario cuando comience a interactuar.
  • 5. Elaborado por: Ing Ligia Duran Ahora para llamar plantilla.php, dentro de index.php, se crea el archivo controlador.php y se coloca lo siguiente.
  • 6. Elaborado por: Ing Ligia Duran El controlador.php va iniciar con una clase que se llame MvcControlador que tiene una función pública que se llamara plantilla, luego a través del método include que permite incluir un archivo dentro de otro se llama el archivo plantilla.php, y que muestre el código de plantilla.php, ahora en index.php se crea el objeto partiendo de la clase MvcControlador y se le pide que llame a la función plantilla() porque se esta haciendo una instancia del controlador. Y para que conecte se utiliza el método requiere, que se utiliza para que requiera el archivo Controlador.php, para ser ejecutado. Ahora probamos en el navegador,
  • 7. Elaborado por: Ing Ligia Duran Hasta, ahora no tiene estilos, y le deben agregar los de su preferencia. Si visualizan el código fuente desde el navegador no visualizaran ninguno de los archivos del controlador y la vista.
  • 8. Elaborado por: Ing Ligia Duran Hasta ahora solo se ha trabajado con la vista y el controlador, el usuario envía solicitud por la vista el controlador la ejecuta y envía la respuesta mediante la vista. Y se protegen y se encapsula la información mediante este patrón. Es importante resaltar la función del require_once() funciona de las misma forma que los demás, salvo que se impide la carga de un mismo archivo más de una vez. Si requerimos el archivo más de una vez se corre el riesgo de redeclarar variables, funcione y clases. Se agrega el archivo de estilos.css
  • 9. Elaborado por: Ing Ligia Duran Se agrega en el head el siguiente link para llamar a los estilos de la pagina <link rel="stylesheet" type="text/css" href="Vista/estilos.css"> Y se visualizara de la siguiente manera:
  • 10. Elaborado por: Ing Ligia Duran Ahora se va modularizar el sistema y creamos una carpeta llamada modulo. y el archivo menu.php, extrayendo la información del nav de la plantilla.php. como se muestra en la siguiente imagen. Luego donde se encontraba el código del menú se hace el llamado con el método include() al archivo menú.php. <?php include "Modulos/menu.php"; ?> Quedando plantilla.php de la siguiente manera
  • 11. Elaborado por: Ing Ligia Duran La finalidad de esta distribuir de esta manera el menú es que lo puedes incluir en varias vistas con el mismo código. Lo mismo va ocurrir con la section se dejara vacio y se crean los archivos, inicio.php, contacto.php, servicios.php y nosotros.php, donde se colocara la etiqueta h1 que estaba en el section de platntilla.php.
  • 12. Elaborado por: Ing Ligia Duran A continuación como se visualizaran estos módulos a través de la variable GET, que son variables enviadas a través de la URL, canal de comunicación que permite PHP y están variables se indentifican con el símbolo ?, el nombre de la variable y se le debe asignar hacia donde se debe dirigir (a que archivo). En este caso se debe modificar el archivo menú.php
  • 13. Elaborado por: Ing Ligia Duran En la parte de abajo y se visualiza la dirección que se le asigno en el menú y al dar click se visualiza en el URL, de esta manera se crea un enlace con variable GET. Se debe tomar en cuenta que no se debe usar esta variable GET, para contraseñas, solo son usadas para navegar. Esta variable la recibe el controlador y se va recibir mediante una función pública enlacesPainaControlador(), mediante una variable recibirá lo que envie GET con la variable action y para poner en funcionamiento se debe hacer lo siguiente: public function enlacesPaginasControlador(){ $enlaces = $_GET["action"]; echo $enlaces; } }
  • 14. Elaborado por: Ing Ligia Duran Y quedaría de la siguiente manera el archivo controlador.php Y en el section del archivo plantilla.php se colocara lo siguiente, se crea la variable $mvc que se encargara de mostrar cuando se le da click al menú.
  • 15. Elaborado por: Ing Ligia Duran Y si ejecutamos el sistema en el localhost se muestra de la siguiente manera Aquí me esta mostrando con echo el valor de la variable no el archivo que debe mostrar el menú. A continuación se mostrara como llamar a los archivos inicio.php, nosotros.php, servicios.php y contacto.php Para esto enviaremos al modelo para que haga la iteración, se debe crear el archivo modelo.php dentro de la carpeta Modelo y creamos una Clase EnlacesPaginas(), con una función enlacesPainaModelo(), con parámetros y para poder recibir el valor de la variable $enlaces se debe crear en la función enlacesPainaControlador(), una variable respuesta, el cual heredar la función enlacesPaginasModelo. A continuación se visualiza el código. Y para que funcione se debe invocar desde el index.php o el controlador del archivo modelo.php, en este caso se invocara desde el index.php de la siguiente manera. Require_once”Modelo/Modelo.php” Así queda el archivo controlador.php
  • 16. Elaborado por: Ing Ligia Duran Y el Modelo.php Ahora luego de recibir la variable debemos validar en el archivo modelo.php
  • 17. Elaborado por: Ing Ligia Duran Modificamos la clases EnlacesPaginas aregando una condición para poder ejecutar los archivo, inicio.php, contacto.php, servicios.php y nosotros.php if ($enlacesModelo == "inicio" || $enlacesModelo == "nosotros" || $enlacesModelo == "servicios" || $enlacesModelo == "contactenos"){ $modulo = "Vista/Modulos/".$enlacesModelo.".php"; } Y retorna la variable modulo y se no enlacesModelo return $modulo; y queda de la siguiente manera
  • 18. Elaborado por: Ing Ligia Duran Ahora para que se muestren las paginas solicitada se le agrega un include $respuesta al archivo controlador.php Listo la pagina interactiva de contenidos modulares en modelo vista controlador se procede a limpiar la URL, pero se encontrara un pequeño problema cuando se vuelva a ingresar al index.php, y genera este error.
  • 19. Elaborado por: Ing Ligia Duran Porque todo lo estamos llamando con la GET action y no aparece en el index.php, debemos limpiar la URL, a continuación se detalla. Se procede a modificar el controlador.php, utilizando el método isset que trae contenido, modificando la función function enlacesPaginasControlador() colocando un condicional que verifique si la variable action tiene información y si no que ejecute el index.php y que el archivo quedaría de la siguiente manera:
  • 20. Elaborado por: Ing Ligia Duran Ahora en el archivo modelo.php se colocara una condición que verifique si se esta llamando al index para que lo ejecute, Se elimina del primer condicional el llamado de la página de inicio, y si la variable action retorna vacía se ejecuta el else y muestra la página de Inicio. Ahora vamos a crear una lista blanca y una lista negra, la primera significa hacer una restricción de solo los enlaces permitidos y la negra es hacer una lista de la palabras no permitidas, por ahora vamos a utilizar la lista blanca. La creamos agregando al modelo.php en el condicional un else tal como class EnlacesPaginas{ public function EnlacesPaginasModelo($enlacesModelo){ if ($enlacesModelo == "inicio" || $enlacesModelo == "nosotros" || $enlacesModelo == "servicios" || $enlacesModelo == "contacto"){ $modulo = "Vista/Modulos/".$enlacesModelo.".php"; }
  • 21. Elaborado por: Ing Ligia Duran else if($enlacesModelo == "index"){ $modulo = "Vista/Modulos/inicio.php"; } else{ $modulo = "Vista/Modulos/inicio.php"; //con esta instrucción se agrea la lista blanca } return $modulo; } } Ejemplo si en la URL reemplazamos inicio por chicas nos ejecutara la pagina de inicio. Si colocamos servicios muestra la paina servicio.