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.