13 agosto 2015

Programacion Orientada a Objetos y la estructura Modelo-Vista-Controlador en PHP Básico - Programando

 

Tutorial anterior : Programación Orientada a Objetos y la estructura Modelo-Vista-Controlador en PHP Básico - Introducción

Entrada RelacionadaEl Patrón Modelo-Vista-Controlador y Programación Orientada a Objetos en PHP Profesional

Crear la base de datos

Nos dirigimos a nuestro phpMyAdmin para crear la base de datos, si no tienes un servidor aun instalado, deberás crear un servidor local en tu computador para poder acceder, una vez dentro de phpMyAdmin, creamos una nueva base de datos llamada "personas", en la cual, introduciremos la siguiente tabla mendiante una consulta SQL


CREATE TABLE  `persona` (
 `cedula` INT( 10 ) NOT NULL ,
 `nombres` VARCHAR( 50 ) NOT NULL ,
 `apellidos` VARCHAR( 50 ) NOT NULL ,
 `altura` DOUBLE NOT NULL ,
PRIMARY KEY (  `cedula` )
) ENGINE = MYISAM ;

Creando el archivo de conexión

Programamos el archivo de conexion, donde crearemos la funcion conexion() con la finalidad de conectarnos a la base de datos, valga la redundancia, debes sustituir cada una de las credenciales usadas en el código por la que tu hayas escrito a la hora de asignar el nombre de usuario y contraseña a tu MySQL

conexion.php

<?php 
function conexion() {
    global $conexion;

    $conexion = mysql_connect("localhost","root","root") or die ("conexion fallida");
    mysql_select_db("personas",$conexion) or die ("No existe la tabla");
}
?>

Una vez realizado esto, podemos continuar programa el Modelo, la Vista y el controlador de la clase Persona en el mismo orden

Creando el Modelo

Antes de comenzar, es importante hacer enfasis en que el modelo no es mas que plasmar en manera de codigo lo que una clase de manera grafica representa (siempre y cuando hagas el diagrama de clases de tu proyecto), un ejemplo muy sencillo, tenemos la siguiente clase representada graficamente en el siguiente elemento

persona
+ cedula: integer
+ nombres: string
+ apellidos: string
+ altura: double
+ registrarAsociado()

Como explicamos anteriormente en el articulo pasado, tenemos la clase persona, cuyas propiedades o atributos son su cedula, nombres, apellidos y altura, y el metodo o función a realizar, es registrarlo en la base de datos. Ahora, como hacemos esto?, basandonos en el elemento o entidad "persona", comenzamos a programar el modelo de la clase

modelo_persona.php


<?php

class persona {

 public $cedula;
 public $nombres;
 public $apellidos;
 public $altura;

 public function registrarPersona() {
  $sql = sprintf("INSERT INTO 
   persona(
    cedula, 
    nombres, 
    apellidos, 
    altura
    ) 
   VALUES('%s','%s','%s','%s')",
    $this->cedula,
    $this->nombres,
    $this->apellidos,
    $this->altura);

  $query = mysql_query($sql);

  if(!$query) 
            echo "<script>alert('Fallo de registro');location: history.back(-2);</script>";
  else
            echo "<script>alert('Registro exitoso');location.href='controlador_persona.php';</script>";
  
 }
}
?>

Creando la vista

La vista es la representacion visual de la clase, es el formulario o interfaz que interactua directamente con el usuario que desea registrar una nueva persona, en este caso. vista_persona.php

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <title>persona</title>
</head>
<body>
 <form action="controlador_persona.php" method="POST">
  <table>
   <tr>
    <th colspan="2">Persona</th>
   </tr>
   <tr>
    <th>Cedula</th>
    <td><input type="number" required name="cedula"></td>
   </tr>
   <tr>
    <th>Nombres</th>
    <td><input type="text" required name="nombres"></td>
   </tr>
   <tr>
    <th>Apellidos</th>
    <td><input type="text" required name="apellidos"></td>
   </tr>
   <tr>
    <th>Altura</th>
    <td><input type="text" required name="altura"></td>
   </tr>
   <tr>
    <td colspan="2" align="right"><button type="submit" name="registrarPersona">Registrar Persona</button></td>
   </tr>
  </table>
  

 </form>
 
</body>
</html>

Creando el controlador

El controlador controla precisamente el flujo de los datos entre la vista y el modelo, valga la redundancia, es como un puente que comunica ambas capas, pues, son independientes una de otra. controlador_persona.php

<?php
include("conexion.php");
conexion();
include("modelo_persona.php");

if(isset($_POST['registrarPersona'])) {
 $registrarPersona = new persona;
 $registrarPersona -> cedula = $_POST["cedula"];
 $registrarPersona -> nombres = $_POST["nombres"];
 $registrarPersona -> apellidos = $_POST["apellidos"];
 $registrarPersona -> altura = $_POST["altura"];
 $registrarPersona -> registrarPersona();

} else {
 header("location: vista_persona.php");
}
?>

Una vez realizado esto, cada dato introducido será guardado en la tabla de nuestra base de datos, es de suma importancia aclarar que este es un tutorial muy básico para la gran expansibilidad de la programación en MVC, mas que una enseñanza, se pretende inculcar la lógica de programación, que a la final, es lo mas esencial que debe tener un programador, si como programadores tenemos la posibilidad de manejarnos con la lógica, ten por seguro que no importa cual sea el lenguaje de programación que estés usando, te irá excelente tanto con uno como con otro.

Enlaces para compartir en tu blog o pagina web.




Widget por Friki Bloggeo