Archivo de la etiqueta: MySQL

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”.

MySQL

El siguiente video muestra la instalación y gestión remota de una base de datos MySQL en un servidor linux Ubuntu. La gestión se realiza desde un ordenador windows utilizando MySQL Workbench conectado con un tunel SSH creado con el programa Putty.

Ejercicio:

  • Instalación en un servidor linux Ubuntu de una base de datos MySQL
  • Gestión remota de la base de datos MySQL
    • Instalación de MySQL Workbench en la máquina real
    • Configurar el cliente SSH Putty para la gestión remota de la base de datos del servidor linux.
    • Conexión del cliente MySQL Workbench con la base de datos del servidor Linux
  • Descargar el fichero SQL para cargar la base de datos Scott y ejecutarlo usando Workbench.
  • Conectar a mysql usando la línea de comandos: mysql -u root -p scott
    • Comprobar el contenido de las tablas “dept” y “emp” usando la línea de comandos
    • Comprobar con Workbench que el contenido es el mismo
  • Realizar la instalación de un servidor apache (Paquete apache2)
  • Realizar la instalación del módulo PHP
    • sudo apt-get install libapache2-mod-php5 php5 php5-mcrypt
    • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql (ubuntu 16.04)
    • sudo apt-get install php-cli
    • Crear un fichero llamado “info.php” para ejecutar la función “phpinfo”. Comprobar el funcionamiento de PHP
  • Instalar el paquete phpMyAdmin
  • Gestionar la base de datos MySQL con phpMyAdmin
  • Realizar el despliegue de la aplicación de ejemplo del patrón MVC