Archivo de la etiqueta: XAMPP

JdA (MVC)

Kick-off Meeting minutes

Escenario

Partiendo de la base de un software desarrollado por la Junta de Andalucía basado en el patrón modelo-vista-controlador (En adelante MVC) se pide la incorporación de una nueva funcionalidad que muestre la tabla de empleados de la base de datos “SCOTT”. A esta nueva funcionalidad se llegará seleccionando un nuevo controlador en la petición “HTTP”. La nueva petición tendrá el formato “http://localhost/path/index.php?controlador=Emp”.

Software de la Junta de Andalucía

El cliente suministra los ficheros PHP y la el backup de la base de datos “CDCOL“. También suministra la base de datos “SCOTT” necesaria para la nueva funcionalidad. La nueva funcionalidad no debe alterar de ninguna manera el funcionamiento anterior. Si no especificamos ningún controlador se debe seguir mostrando la lista de la base de datos “CDCOL“.

 Análisis previo

Base de datos

La base de datos “Cdcol” está compuesta por una única tabla llamada “CDS” que contiene una lista de discos musicales. La tabla tiene los siguientes campos: “titel”,”interpret”, “jahr”,”id”.

Software PHP

Siguiendo el patrón MVC el fichero “index.php” es un fichero sencillo que llama al controlador principal situado en el fichero “libs/FrontController.php”. Por defecto el “front controller” llama al controlador “Cd” en el fichero “controlador/CdController.php” y al método “listar”.  El elemento modelo está en el fichero “modelo/CdModelo.php” y el elemento vista en “vista/listado.php”.

Existen varios ficheros complementarios:

  • libs/Config.php – Es un fichero genérico que crea una clase con la configuración.
  • configuracion.php – crea los atributos y valores de la clase “Config” del fichero anterior
  • libs/SPDO.php – crea una clase con una única instancia a la base de datos “CDCOL”
  • libs/Vew.php – Es un frontal del elemento “vista”. Llama a la plantilla indicada en su método “show”.

Análisis de las modificaciones necesarias

Análisis por fichero:

  • index.php – no es necesario modificarlo
  • configuracion.php – Es necesario añadir un parámetro nuevo “nombreBDscott” con el valor “scott”
  • libs/FrontController.php – No es necesario modificarlo
  • libs/Config.php – No es necesario modificarlo
  • libs/View.php – No es necesario modificarlo
  • libs/SPDO.php – Es necesario crear una nueva clase denominada “SPDOscott” para la conexión con la base de datos “SCOTT”
  • controlador/CdController.php – no es necesaria su modificación pero es necesario un nuevo fichero llamado “controlador/EmpController.php” con un método “listar” que llame a un elemento modelo diferente “EmpModelo” y un método diferente “devuelveTodosEmp”. También la llamada a vista debe ser diferente con una nueva plantilla “listadoEmp.php”.
  • modelo/CdModelo.php – no es necesaria su modificación pero se debe crear un fichero nuevo llamado “modelo/EmpModelo.php” con un método “devuelveTodosEmp” que conecte con la base de datos “SCOTT” y liste todos los empleados.
  • vista/listado.php – no es necesaria su modificación pero es necesario un nuevo fichero “vista/listadoEmp.php”. Este fichero debe ser similar a “listado.php” pero con los campos de la tabla de empleados de la base de datos “SCOTT

Reparto de tareas

Programador 1 (controlador)

Se encargará de la creación del fichero “controlador/EmpController.php” que llamará al nuevo método “devuelveTodosEmp” en el nuevo modelo “modelo/EmpModelo.php” y a la nueva vista “vista/listadoEmp.php”

Programador 2 (vista)

Se encargará de la nueva vista “vista/listadoEmp.php” que muestre los campos de la tabla de empleados de la base de datos “SCOTT”

Programador 3 (modelo)

Se encargará de crear el nuevo método “devuelveTodosEmp” en el nuevo fichero de modelo “modelo/EmpModelo.php”. Para encargará también del nuevo parámetro en “configuracion.php” y de la nueva clase en “libs/SPDO.php”.