4. POO en PHP, MVC y el framework web Laravel

Contenidos

  1. Programación Orientada a Objetos (POO).
  2. Patrones de arquitectura:
    1. Ejemplos:
      1. Programación por capas (lógica de negocio, DAL, etc.)
      2. Modelo-Vista-Controlador (MVC).
  3. Framework web.
  4. Laravel.

Cursos de Laravel:

  1. Coders Free.
  2. Píldoras informáticas.
  3. Programar es fácil.
  4. CursosDesarrolloWeb.

Actividades de OOP, MVC y otros

1. Repasa la POO y detalla sus conceptos y características principales.

2. Haz este tutorial desde aquí hasta aquí de POO; para ello, ejecuta todos sus ejemplos y explícalos.

3. Resuelve estos diez ejercicios sobre clases usando POO en PHP.

4. Lee a fondo y explica con tus palabras lo que es patrón de arquitectura y enumera todos sus ejemplos.

5. Define programación por capas y sus capas como BLL (lógica de negocio) o DAL y detalla la three-tier.

6. Lee a fondo y explica al detalle el patrón de arquitectura MVC, sus componentes y cómo interactúan.

7. Ve este vídeo de inicio a fin, resúmelo y explica el flujo de MVC empezando por la vista.

8. Lee bien este y este artículo y ejecuta, modifica y explica exhaustivamente esta plantilla MVC básica.

9. Lee exhaustivamente y explica con tus propias palabras lo que es un framework web.

10. Lee exhaustivamente y explica con tus propias palabras lo que es Laravel.

Actividades de Laravel

1. Framework web e instalación

1. Realiza los siguientes ejercicios:
a) Mira este vídeo, di de qué trata e indica los puntos del curso que más te llaman la atención.
b) Mira este vídeo de principio a fin y explica de nuevo framework web y MVC.
c) Explora la documentación oficial de Laravel y describe las diferentes formas de instalar Laravel.
d) Crea un proyecto en blanco en Laravel usando Composer ayudándote de aquí o del curso (1, 2 y 3).

Recomendación

Antes de seguir, comienza y completa la siguiente unidad didáctica: servicios web.

2. Rutas y controladores

Antes de empezar, explora e investiga cómo funcionan las rutas y controladores en Laravel.

2. Crea una web en Laravel siguiendo estos tutoriales:
a) Completa este tutorial para crear las rutas /, /sobrenosotros, /contacto, /foro y /post/{id}/{nombre}.
b) Completa este tutorial para crear el controlador EjemploController y la ruta /inicio.
c) Completa este tutorial para crear Ejemplo2Controller y Ejemplo3Controller usando artisan.
d) Completa este tutorial para crear el controlador PaginasController que muestre páginas web.
e) Completa este tutorial para crear las rutas típicas de CRUD y verlas con php artisan route:list.

3. Vistas mediante Bootstrap y Blade

Antes de empezar, aprende lo que es un sistema o motor de plantillas web y cómo funciona Blade.

3. Crea una web en Laravel siguiendo estos tutoriales:
a) Completa este tutorial para crear las rutas /, /crear, /articulos y /mostrar y enlazar a BootstrapCDN.
b) Completa este tutorial para crear un menú de navegación descargando y usando Bootstrap.
c) Completa este tutorial para crear una plantilla base y tres plantillas descendientes.
d) Completa este tutorial para mostrar desde una plantilla los valores del array: $alumnos.
e) Completa este tutorial combinar las plantillas hechas Blade con Bootstrap.

4. Bases de datos y Eloquent

Antes de empezar, aprende lo que es ORM, cómo funciona Eloquent y se establecen las relaciones.

4. Crea una web en Laravel siguiendo estos tutoriales:
a) Mira este tutorial y lee este tutorial para aprender a configurar la base de datos en Laravel.
b) Completa este tutorial, este tutorial y este tutorial para migrar en Laravel a la base de datos.
c) Visualiza este tutorial para aprender a ejecutar consultas SQL nativas en Laravel.
d) Completa este tutorial para seleccionar registros en Eloquent.
e) Completa este tutorial para seleccionar registros con filtros en Eloquent.
f) Completa este tutorial para insertar y actualizar registros en Eloquent.
g) Completa este tutorial para actualizar en masa, borrar y crear registros en Eloquent.
h) Completa este tutorial para realizar soft deleting en Eloquent.
i) Completa este tutorial para crear una relación uno a uno en Eloquent.
j) Completa este tutorial para crear una relación uno a uno inverso en Eloquent.
k) Completa este tutorial para crear una relación uno a varios en Eloquent.
l) Completa este tutorial y este tutorial para crear una relación varios a varios en Eloquent.
k) Completa este tutorial para crear relaciones polifórmicas en Eloquent.

Tinker (opcional): mira este tutorial y este tutorial para aprender a usar la herramienta Tinker de Artisan.

5. CRUD con formularios

5. Crea una web en Laravel siguiendo estos tutoriales:
a) Completa este tutorial o los siguientes para crear un CRUD con formularios: 1, 2, 3, 4, 5, 6, 7 y 8.
b) (opcional) Completa este, este y este tutorial para aprender a usar Forms & HTML de LaravelCollective.
c) Completa este tutorial y este tutorial para validar formularios desde Laravel.
d) Completa este tutorial y este tutorial para subir imágenes a una base de datos y mostrarlas
(sin LaravelCollective: <form action='/productos' method='post' enctype='multipart/form-data'>).

6. Autenticación y sesiones

6. Crea una web en Laravel siguiendo estos tutoriales:
a) Completa este tutorial y este tutorial para crear un sistema de registro de usuarios e inicio de sesión
(Laravel 6: composer require laravel/uiphp artisan ui vue --auth y enlazar a Bootstrap en las vistas).
b) Completa este y este tutorial para crear roles y zona de usuarios registrados y no registrados.
c) Completa este tutorial y este tutorial para manejar sesiones.
d) (opcional) Completa este tutorial y este tutorial para enviar correos electrónicos.

7. Aplicación web completa con Laravel (opcional)

7. Completa este tutorial y los siguientes para crear una aplicación web completa de ejemplo.

Actividad de ampliación

Crea una aplicación web en Laravel. Elige uno de los siguientes temas:

1. Compra online de entradas de cine

El usuario (cliente) se registrará, iniciará sesión y realizará una compra online de una o varias entradas de cine de un catálogo de 5 películas diferentes. El administrador (empresario) iniciará sesión y podrá comprobar todas las entradas compradas para cada película y qué clientes lo compraron. El administrador también podrá añadir y eliminar nuevas películas.

2. Biblioteca online

El usuario (cliente) se registrará, iniciará sesión y realizará un préstamo online de uno o varios libros desde y hasta una fecha determinada a partir de un catálogo de 10 libros diferentes. El usuario no podrá reservar un libro determinado si éste se encuentra actualmente prestado. El administrador (bibliotecario) iniciará sesión y podrá comprobar todos los libros prestados, en qué fechas y qué clientes lo solicitaron. El administrador también podrá añadir y eliminar nuevos libros.

3. Foro básico

El usuario (cliente) se registrará, iniciará sesión y abrirá un hilo de conversación, responderá en otro hilo de conversación ya existente y/o dara me gusta a un hilo o respuesta. El administrador iniciará sesión y podrá comprobar el número de mensajes de cada usuario y el número de me gusta en total recibidos. El administrador también podrá iniciar hilos y responder a hilos.

Evaluación

Entrega

  1. La estructura de archivos y carpetas debe quedar así.
  2. El fichero de texto realizado.txt indicará qué apartados de cada actividad se han completado.
  3. El profesor descomprimirá el ZIP y verificará los apartados completados según tarea.txt.
  4. Es importante la franqueza en realizado.txt, sobreestimar conlleva a futuras dificultades en Laravel.

Criterios de calificación