ARQUITECTURA MVC Modelo Vista Controlador es un patrn

  • Slides: 28
Download presentation
ARQUITECTURA MVC Modelo Vista Controlador es un patrón de arquitectura de software que se

ARQUITECTURA MVC Modelo Vista Controlador es un patrón de arquitectura de software que se utiliza mucho en aplicaciones web, separándola en tres capas (modelo, controlador y vista) que posteriormente veremos para que se utiliza cada una. El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario 1 2. Este patrón de diseño se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento 3 4. Tomado de: http: //es. wikipedia. org/wiki/Modelo_Vista_Controlador

PASOS DE LA ARQUITECTURA 1. Creación del MER (modelo entidad relación) que se aplicara

PASOS DE LA ARQUITECTURA 1. Creación del MER (modelo entidad relación) que se aplicara en el proyecto BD TABLA INVENTARIO

PASOS DE LA ARQUITECTURA 2. Creación de procedimientos almacenados (insertar, listar, consultar, editar, eliminar)

PASOS DE LA ARQUITECTURA 2. Creación de procedimientos almacenados (insertar, listar, consultar, editar, eliminar) Crear el procedimiento almacenado con el nombre de: insertarcliente

PASOS DE LA ARQUITECTURA 3. Se debe crear carpeta principal dentro de esta crear

PASOS DE LA ARQUITECTURA 3. Se debe crear carpeta principal dentro de esta crear la estructura inicial. (Creación de las carpetas de ubicación de los procesos principales) En C: xammphtdocsnombre del proyecto En la carpeta MODELO estarán todos los archivos que manejan las reglas del negocio e interactuar con la base de datos los cuales llamaremos Nombre. Modelo. php. La VISTA es el código HTML que se muestra al usuario, con la información proveniente del controlador, se manejaran dependiendo el proceso 2 archivos; uno Nombre. Formulario. php y el otro quien recibe los datos del formulario y los envía al controlador para realizar un determinado proceso Nombre. Archivo. php. Nombre del proyecto En la carpeta CONEXION alojaremos la conexión que establece con el servidor mysql (contraseña, usuario mysql, nombre de la BD) Ctr. Nombre. Control. php En la carpeta CONTROL alojaremos todos los archivos para la comunicación entre el modelo y la interfaz los cuales denominaremos con nombre Ctr. Nombre. Control. php.

4. MODELO Nombre de Archivo Cliente. php <? php class Cliente { var $Cedula,

4. MODELO Nombre de Archivo Cliente. php <? php class Cliente { var $Cedula, $Nombres, $Apellidos, $Direccion, $Telefono, $Celular, $Email; //MÉTODO CONSTRUCTOR: se encarga de inicializar los atributos de la clase. function __construct() { } METODOS SET: Cambia el valor de la propiedad (actualiza los valores en el objeto). function set. Cedula($Cedula) { $this->Cedula=$Cedula; } function set. Nombres($Nombres) { $this->Nombres=$Nombres; }

function set. Apellidos($Apellidos) { this->Apellidos=$Apellidos; } function set. Direccion($Direccion) { $this->Direccion=$Direccion; } function set.

function set. Apellidos($Apellidos) { this->Apellidos=$Apellidos; } function set. Direccion($Direccion) { $this->Direccion=$Direccion; } function set. Telefono($Telefono) { $this->Telefono=$Telefono; } function set. Celular($Celular) { $this->Celular=$Celular; } function set. Email($Email) { $this->set. Email=$Email; }

METODOS GET: Lee el valor de la propiedad(extrae los valores del objeto) function get.

METODOS GET: Lee el valor de la propiedad(extrae los valores del objeto) function get. Cedula() { return $this->Cedula; } function get. Nombres() { return $this->Nombres; } function get. Apellidos() { return $this->Apellidos; } function get. Direccion() { return $this->Direccion; } function get. Telefono() { return $this->Telefono; }

function get. Celular() { return $this->Celular; } function get. Email() { return $this->get. Email;

function get. Celular() { return $this->Celular; } function get. Email() { return $this->get. Email; } } //CIERRE CLASE ? >

5. CONTROL Nombre de Archivo Ctrcliente. php <? php class Ctr. Cliente { var

5. CONTROL Nombre de Archivo Ctrcliente. php <? php class Ctr. Cliente { var $Obj. Cliente; var $resultado; //MÉTODO CONSTRUCTOR: se encarga de inicializar los atributos de la clase. function Ctr. Cliente($obj. Cliente. In) { $this->Obj. Cliente=$obj. Cliente. In; } METODO PARA RETORNAR RESULTADOS function get. Resultado() { return $this->resultado; }

//METODOS PARA REALIZAR PROCESOS //METODO PARA INSERTAR PERSONAS function insertar() { $Cedula=$this->Obj. Cliente->get. Cedula();

//METODOS PARA REALIZAR PROCESOS //METODO PARA INSERTAR PERSONAS function insertar() { $Cedula=$this->Obj. Cliente->get. Cedula(); $Nombre=$this->Obj. Cliente->get. Nombre(); $Apellidos=$this->Obj. Cliente->get. Apellidos(); $Direccion=$this->Obj. Cliente->get. Direccion(); $Telefono=$this->Obj. Cliente->get. Telefono(); $Celular=$this->Obj. Cliente->get. Celular(); $Email=$this->Obj. Cliente->get. Email(); //ARCHIVO PARA CONECTARNOS A LA BASE DE DATOS include(". . /conexion. php");

//CONSULTA PARA INSERTAR UN CLIENTE $consulta="call insertarcliente('$Cedula', '$Nombre', '$Apellidos', '$Direccion', '$Telefono', '$Celular', '$Email')"; $resultado=mysqli_query($conexion,

//CONSULTA PARA INSERTAR UN CLIENTE $consulta="call insertarcliente('$Cedula', '$Nombre', '$Apellidos', '$Direccion', '$Telefono', '$Celular', '$Email')"; $resultado=mysqli_query($conexion, $consulta); } if($resultado) { $this->resultado=$resultado; } else { return $conexion; }

6. VISTA Para realizar el proceso de inserción de un registro: se manejan 2

6. VISTA Para realizar el proceso de inserción de un registro: se manejan 2 archivos. Frmcliente. php Archivo 1: contiene la creación del formulario como se muestra en la imagen. En el formulario en el método action se debe especificar el nombre del segundo archivo <form action="guardarcliente. php" > quien recibirá los datos.

<html> <head> <title></title> </head> <body> <form action="guardarcliente. php" method="POST"> <table> <tr> <td>Cedula</td> <td><input type="text"

<html> <head> <title></title> </head> <body> <form action="guardarcliente. php" method="POST"> <table> <tr> <td>Cedula</td> <td><input type="text" name="Cedula"></td> </tr> <td>Nombres</td> <td><input type="text" name="Nombres"></td> </tr> <td>Apellidos</td> <td><input type="text" name="Apellidos"></td> </tr> <td>Direccion</td> <td><input type="text" name="Direccion"></td> </tr>

<tr> </tr> </table> </form> </body> </html> </tr> <td>Telefono</td> <td><input type="text" name="Telefono"></td> <tr> <td>Celular</td> <td><input

<tr> </tr> </table> </form> </body> </html> </tr> <td>Telefono</td> <td><input type="text" name="Telefono"></td> <tr> <td>Celular</td> <td><input type="text" name="Celular"></td> <tr> <td>Email</td> <td><input type="text" name="Email"></td> <tr> <td colspan="2"><input type="submit" value="Guardar"></td>

Archivo 2: Este archivo recibirá los datos del formulario y los enviara al controlador

Archivo 2: Este archivo recibirá los datos del formulario y los enviara al controlador para realizar el proceso de inserción de un cliente guardarcliente. php <? php $Cedula=$_POST["Cedula "]; $Nombres=$_POST["Nombres"]; $Apellidos=$_POST["Apellidos"]; Email=$_POST["Email"]; $Direccion=$_POST["Direccion"]; $Telefono=$_POST["Telefono"]; $Celular=$_POST["Celular"]; //ARCHIVOS PARA TRABAJAR CON EL CLIENTE include(". . /modelo/cliente. php"); include(". . /control/ctrcliente. php"); $Obj. Cliente=new Cliente(); $Obj. Ctr. Cliente=new Ctr. Cliente($Obj. Cliente); $Obj. Cliente->set. Cedula($Cedula); $Obj. Cliente->set. Nombres($Nombres); $Obj. Cliente->set. Apellidos($Apellidos); $Obj. Cliente->set. Direccion($Direccion); $Obj. Cliente->set. Email($Email); $Obj. Cliente->set. Telefono($Telefono); $Obj. Cliente->set. Celular($Celular);

//LLAMAMOS EL METO PARA REALIZAR LA INSERCION DEL CLIENTE $error=$Obj. Ctr. Cliente->insertar(); $resultado=$Obj. Ctr.

//LLAMAMOS EL METO PARA REALIZAR LA INSERCION DEL CLIENTE $error=$Obj. Ctr. Cliente->insertar(); $resultado=$Obj. Ctr. Cliente->get. Resultado(); if(!$resultado) { die("Error en la consulta: ". mysqli_error($error)); } echo "<script languge='javascript'>alert('Registro Almacenado')</script>"; ? >

6. CONEXION Se Maneja Un Archivo Llamado Conexión. Php Con La Siguiente Instrucción <?

6. CONEXION Se Maneja Un Archivo Llamado Conexión. Php Con La Siguiente Instrucción <? php $conexion=new mysqli("localhost", "Usuario(root)", "Contraseña", "Nombre. Bd") ? > Ejemplo: <? php $conexion=new mysqli('localhost', 'root', 'inventario'); ? >

7. Consultar 7, 1. Creación de procedimientos almacenados (consultar) Crear el procedimiento almacenado con

7. Consultar 7, 1. Creación de procedimientos almacenados (consultar) Crear el procedimiento almacenado con el nombre de: consultarcliente

7, 2. en Control Adicionar al archivo ctrlcliente. php antes de la última llave

7, 2. en Control Adicionar al archivo ctrlcliente. php antes de la última llave //---------CONSULTAR------function consultar() { $Cedula=$this->Obj. Cliente->get. Cedula(); //ARCHIVO PARA CONECTARNOS A LA BASE DE DATOS include(". . /conexion. php"); //CONSULTA PARA INSERTAR UN CLIENTE $consulta="call consultarcliente('$Cedula')"; $resultado=mysqli_query($conexion, $consulta); if($resultado) { $this->resultado=$resultado; } else { return $conexion; } }

7, 3. En VISTA Para realizar la consulta de un registro: se manejan 2

7, 3. En VISTA Para realizar la consulta de un registro: se manejan 2 archivos. Archivo 1: contiene la creación del formulario como se muestra en la imagen. Frm. Buscarcliente. php En el formulario en el método action se debe especificar el nombre del segundo archivo <form action="buscarcliente. php" > quien recibirá los datos.

7, 3, 1, Guardarlo en vista con el nombre de Frm. Buscarcliente. php <html>

7, 3, 1, Guardarlo en vista con el nombre de Frm. Buscarcliente. php <html> <head> <title></title> </head> <body> <form action="mostarcliente. php" method="POST"> <table> <tr> <td>Cedula</td> <td><input type="text" name="Cedula"></td> </tr> <td colspan="2"><input type="submit" value="Consultar"></td> </tr> </table> </form> </body> </html>

7, 3, 2, Guardarlo en vista con el nombre de buscarcliente. php <? php

7, 3, 2, Guardarlo en vista con el nombre de buscarcliente. php <? php $Cedula=$_POST["Cedula"]; //ARCHIVOS PARA TRABAJAR CON EL CLIENTE include(". . /modelo/cliente. php"); include(". . /control/ctrcliente. php"); $Obj. Cliente=new Cliente(); $Obj. Ctr. Cliente=new Ctr. Cliente($Obj. Cliente); $Obj. Cliente->set. Cedula($Cedula); //LLAMAMOS EL METO PARA REALIZAR LA INSERCION DEL CLIENTE $error=$Obj. Ctr. Cliente->consultar(); $resultado=$Obj. Ctr. Cliente->get. Resultado(); if(!$resultado) { die("Error en la consulta: ". mysqli_error($error)); } $total=mysqli_num_rows($resultado); if($total!=0) { $row=mysqli_fetch_array($resultado);

? > <table border=1> <tr> <td>Cedula</td> <td>Nombres</td> <td>Apellidos</td> <td>Direccion</td> <td>Telefono</td> <td>Celular</td> <td>Email</td> </tr> <td><?

? > <table border=1> <tr> <td>Cedula</td> <td>Nombres</td> <td>Apellidos</td> <td>Direccion</td> <td>Telefono</td> <td>Celular</td> <td>Email</td> </tr> <td><? php echo $row["Cedula"]; ? ></td> <td><? php echo $row["Nombres"]; ? ></td> <td><? php echo $row["Apellidos"]; ? ></td> <td><? php echo $row["Direccion"]; ? ></td> <td><? php echo $row["Telefono"]; ? ></td> <td><? php echo $row["Celular"]; ? ></td> <td><? php echo $row["Email"]; ? ></td> </tr> </table> <? php } else { echo"<script language='javascript'>alert('No hay registros'); </script>"; }

8. Listar 8, 1. Creación de procedimientos almacenados (Listar) Crear el procedimiento almacenado con

8. Listar 8, 1. Creación de procedimientos almacenados (Listar) Crear el procedimiento almacenado con el nombre de: listarcliente

8, 2. en Control Adicionar al archivo ctrlcliente. php antes de la última llave

8, 2. en Control Adicionar al archivo ctrlcliente. php antes de la última llave //METODO PARA LISTAR TODOS LOS CLIENTES function listar() { //ARCHIVO PARA CONECTARNOS A LA BASE DE DATOS include(". . /conexion. php"); //CONSULTA PARA INSERTAR UN CLIENTE $consulta="call listarcliente()"; $resultado=mysqli_query($conexion, $consulta); if($resultado) { $this->resultado=$resultado; } else { return $conexion; } }

8, 3. En VISTA Archivo 1: contiene las instrucciones para realizar el listado de

8, 3. En VISTA Archivo 1: contiene las instrucciones para realizar el listado de todos los clientes listarcliente. php. El cual contiene <? php //ARCHIVOS PARA TRABAJAR CON EL CLIENTE include(". . /modelo/cliente. php"); include(". . /control/ctrcliente. php"); $Obj. Cliente=new Cliente(); $Obj. Ctr. Cliente=new Ctr. Cliente($Obj. Cliente); //LLAMAMOS EL METO PARA REALIZAR LA INSERCION DEL CLIENTE $error=$Obj. Ctr. Cliente->listar(); $resultado=$Obj. Ctr. Cliente->get. Resultado(); if(!$resultado) { die("Error en la consulta: ". mysqli_error($error)); } $total=mysqli_num_rows($resultado); if($total!=0) { ? >

<table border=1> <tr> <td>Cedula</td> <td>Nombres</td> <td>Apellidos</td> <td>Direccion</td> <td>Telefono</td> <td>Celular</td> <td>Email</td> </tr> <? php while($row=mysqli_fetch_array($resultado))

<table border=1> <tr> <td>Cedula</td> <td>Nombres</td> <td>Apellidos</td> <td>Direccion</td> <td>Telefono</td> <td>Celular</td> <td>Email</td> </tr> <? php while($row=mysqli_fetch_array($resultado)) { ? > <tr> <td><? php echo $row["Cedula"]; ? ></td> <td><? php echo $row["Nombres"]; ? ></td> <td><? php echo $row["Apellidos"]; ? ></td> <td><? php echo $row["Direccion"]; ? ></td> <td><? php echo $row["Telefono"]; ? ></td> <td><? php echo $row["Celular"]; ? ></td> <td><? php echo $row["Email"]; ? ></td> </tr>

<? php } ? > </table> <? php } else { } echo"<script language='javascript'>alert('No

<? php } ? > </table> <? php } else { } echo"<script language='javascript'>alert('No hay registros'); </script>";