Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > MVC en tres pasos, en PHP y sin objetos
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

MVC en tres pasos, en PHP y sin objetos

MVC significa "Modelo, Vista y Controlador".

A grandes rasgos: el Modelo es todo acceso a base de datos, y las funciones que llevan lo que llaman "lógica de negocio". O sea, las funciones más "pequeñas" con significado: ingresar una cantidad, obtener un listado de historias, ...

La vista, en una aplicación web, es el HTML (o XML, WAP, PDF, ...) y lo necesario para convertir datos en HTML. El acceso a bases de datos no es vista. La gestión de sesiones no es vista.

El controlador es lo que une la vista y el modelo. Por ejemplo, son las funciones que toman los valores de un formulario, consultan la base de datos (a través del modelo) y producen valores, que la vista tomará y convertirá en HTML.

1. M de Modelo

Las funciones "con significado" que mencioné antes deberían estar agrupadas lógicamente. O sea, no de una "forma lógica", sino que las que sean parecidas estén juntas.

El modelo incluye todas las funciones necesarias para acceder a bases de datos, recursos de la máquina, etc.

Estas funciones son de acceso a base de datos. Son funciones muy simples, que por si solas no tienen "significado" fuera de la base de datos:

function db_quitar_dinero ($cuenta, $cantidad)
function db_contar_historias ()
function db_buscar_productos_de_fabricante ($fabricante)
function db_borrar_usuario ($usuario)

Estas funciones tienen "significado": son operaciones "reales" sobre cosas "reales":

function obtener_historias ($num)
function transferir_dinero ($cantidad, $orig, $dest)
function añadir_carrito ($producto, $unidades, $usuario)

La principal diferencia es que las primeras son simples operaciones sobre la base de datos, y que las segundas pueden componerse de una o varias llamadas a funciones de acceso a base de datos y, posiblemente, cierta cantidad de "procesamiento".

Ejemplo:

function db_obtener_productos () {
  $prod = array();

  mysql_pconnect (DBHOST, DBUSER, DBPASS);
  mysql_select_db (DBNAME);
  $query = "SELECT id, nombre, cantidad, descripcion FROM productos";
  $result = mysql_query ($query);
  while ($row = mysql_fetch_array ($result)) {
array_push ($prod, $row);
  }

  return $prod;
}

function obtener_productos ($letra) {
  if ($letra == "") {
return db_obtener_productos ();
  } else {
return db_obtener_productos_con_letra ($letra);
  }
}
Razones

Cada acceso a base de datos se pone en su función individual porque, de esta forma, si se cambia de gestor de bases de datos este cambio sólo afecta a estas funciones, no al resto de la aplicación.

Tener el modelo bien delimitado permite la existencia de varias aplicaciones que compartan el mismo modelo (por ejemplo, una aplicación "tienda" y una "contabilidad" que accedan a las bases de datos de inventario, ventas, ...)



Usuarios que han visto este tema también han visto...

- Comentarios en PHP
- Dectectar el País del visitante con PHP
- Codificar contraseñas md5
- Compilando Apache y PHP para Linux
- Introducción al PHP y a las librerías


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 13-02-2012 a las 09:42:05