Saltar a contenido

Propuesta did谩ctica UP 04: Accediendo a datos con framework

Introducci贸n

La Unidad de Programaci贸n "Accediendo a datos con framework" tiene como objetivo dotar a los estudiantes de las competencias necesarias para desarrollar aplicaciones web din谩micas, organizadas y seguras que acceden y manipulan datos de manera persistente. A lo largo de esta unidad, se trabajar谩 con tecnolog铆as como PHP y el framework Laravel, permitiendo construir aplicaciones que integren operaciones de base de datos con estructuras modernas como el patr贸n MVC. Se har谩 especial 茅nfasis en la conexi贸n con sistemas de gesti贸n de bases de datos mediante PDO, el uso de sentencias preparadas para prevenir inyecciones SQL, la gesti贸n de sesiones y archivos. Adem谩s, se abordar谩 el desarrollo orientado a objetos en PHP mediante un framework, facilitando la implementaci贸n de l贸gica de negocio clara y mantenible.

Adicionalmente, se centrar谩 en la calidad del software, capacitando al alumnado en la implementaci贸n de aplicaciones CRUD completas utilizando Laravel y Eloquent ORM. Se ense帽ar谩 a estructurar proyectos seg煤n las convenciones del framework, gestionar rutas, controladores, vistas y modelos de manera coherente y segura, y a aplicar principios de dise帽o que fomenten la escalabilidad y el mantenimiento del c贸digo. A trav茅s de ejemplos pr谩cticos y entornos virtualizados como Docker, los estudiantes desarrollar谩n competencias clave para el desarrollo profesional de aplicaciones web modernas y eficientes, integrando la l贸gica del servidor con una gesti贸n de datos robusta y segura.

Cuestionario inicial

隆Ponte a prueba!
  1. 驴Qu茅 significa PDO en el contexto de PHP?

    1. PHP Data Optimization
    2. PHP Directory Object
    3. PHP Data Objects
    4. PHP Development Operator
    Respuesta correcta

    Respuesta correcta: c. PHP Data Objects

  2. 驴Cu谩l de las siguientes operaciones corresponde a la "U" de CRUD?

    1. Unir
    2. Utilizar
    3. Usar
    4. Actualizar
    Respuesta correcta

    Respuesta correcta: d. Actualizar

  3. 驴Qu茅 ventaja principal ofrecen las sentencias preparadas en PDO?

    1. Mejor compresi贸n de datos
    2. Menor uso de memoria
    3. Prevenci贸n de inyecciones SQL
    4. Generaci贸n autom谩tica de vistas
    Respuesta correcta

    Respuesta correcta: c. Prevenci贸n de inyecciones SQL

  4. 驴Cu谩l es el patr贸n arquitect贸nico que sigue Laravel por defecto?

    1. Singleton
    2. MVC
    3. MVP
    4. DAO
    Respuesta correcta

    Respuesta correcta: b. MVC

  5. 驴Qu茅 hace el m茅todo lastInsertId() en PDO?

    1. Devuelve el n煤mero total de filas
    2. Borra el 煤ltimo registro insertado
    3. Obtiene el ID del 煤ltimo registro insertado
    4. Lanza una excepci贸n
    Respuesta correcta

    Respuesta correcta: c. Obtiene el ID del 煤ltimo registro insertado

  6. 驴D贸nde se definen las rutas web en un proyecto Laravel?

    1. config/web.php
    2. routes/api.php
    3. public/web.php
    4. routes/web.php
    Respuesta correcta

    Respuesta correcta: d. routes/web.php

  7. 驴Cu谩l es el ORM utilizado por Laravel para interactuar con bases de datos?

    1. Doctrine
    2. Propel
    3. Eloquent
    4. ActiveRecord
    Respuesta correcta

    Respuesta correcta: c. Eloquent

  8. 驴Qu茅 m茅todo Artisan se utiliza para crear un controlador tipo resource en Laravel?

    1. php artisan controller:make
    2. php artisan make:controller -r
    3. php artisan controller new
    4. php artisan generate controller
    Respuesta correcta

    Respuesta correcta: b. php artisan make:controller -r

  9. 驴Qu茅 hace la instrucci贸n Route::resource('post', PostController::class); en Laravel?

    1. Define una sola ruta llamada post
    2. Crea rutas personalizadas para el controlador
    3. Define todas las rutas CRUD autom谩ticamente
    4. Elimina todas las rutas relacionadas con post
    Respuesta correcta

    Respuesta correcta: c. Define todas las rutas CRUD autom谩ticamente

  10. 驴Qu茅 tipo de resultado devuelve el m茅todo fetch(PDO::FETCH_ASSOC)?

    1. Un objeto
    2. Un array indexado num茅ricamente
    3. Un array asociativo con nombres de columnas
    4. Un booleano
    Respuesta correcta

    Respuesta correcta: c. Un array asociativo con nombres de columnas

Resumen UP

Objetivos Generales

  • OGf: Seleccionar lenguajes, objetos y herramientas, interpretando las especificaciones para desarrollar aplicaciones web con acceso a bases de datos.
  • OGg: Utilizar lenguajes, objetos y herramientas, interpretando las especificaciones para desarrollar aplicaciones web con acceso a bases de datos.
  • OGh: Generar componentes de acceso a datos, cumpliendo las especificaciones, para integrar contenidos en la l贸gica de una aplicaci贸n web.
  • OGl: Utilizar herramientas y lenguajes espec铆ficos, cumpliendo las especificaciones, para desarrollar e integrar componentes software en el entorno del servidor web.
  • OGq: Programar y realizar actividades para gestionar el mantenimiento de los recursos inform谩ticos.
  • OGs: Desarrollar la creatividad y el esp铆ritu de innovaci贸n para responder a los retos que se presentan en los procesos y organizaci贸n de trabajo y de la vida personal.
  • OGt: Tomar decisiones de forma fundamentada analizando las variables implicadas, integrando saberes de distinto 谩mbito y aceptando los riesgos y la posibilidad de equivocaci贸n en las mismas, para afrontar y resolver distintas situaciones, problemas o contingencias.

Competencias Profesionales, Personales y Sociales.

  • CPRd: Gestionar bases de datos, interpretando su dise帽o l贸gico y verificando integridad, consistencia, seguridad y accesibilidad de los datos.
  • CPRf: Integrar contenidos en la l贸gica de una aplicaci贸n web, desarrollando componentes de acceso a datos adecuados a las especificaciones.
  • CPRh: Desarrollar componentes multimedia para su integraci贸n en aplicaciones web, empleando herramientas espec铆ficas y siguiendo las especificaciones establecidas.
  • CPRj: Desarrollar e integrar componentes software en el entorno del servidor web, empleando herramientas y lenguajes espec铆ficos, para cumplir las especificaciones de la aplicaci贸n.
  • CPR帽: Desplegar y distribuir aplicaciones web en distintos 谩mbitos de implantaci贸n, verificando su comportamiento y realizando modificaciones.
  • CPEq: Resolver situaciones, problemas o contingencias con iniciativa y autonom铆a en el 谩mbito de su competencia, con creatividad, innovaci贸n y esp铆ritu de mejora en el trabajo personal y en el de los miembros del equipo.

Objetivos Did谩cticos

  • OD1: Analizar tecnolog铆as que permitan el acceso a la informaci贸n.
  • OD2: Realizar aplicaciones que interact煤en con una base de datos.
  • OD3: Documentar y probar aplicaciones web.
  • OD4: Identificar las ventajas e inconvenientes del uso de frameworks en el desarrollo web en entorno servidor.
  • OD5: Desarrollar servicios web mediante frameworks
  • OD6: Generar p谩ginas web siguiendo el patr贸n MVC
  • OD7: Manejar roles dentro de una aplicaci贸n web.
  • OD8: Introducir datos de ejemplos en una aplicaci贸n web de manera automatizada.

Contenidos Espec铆ficos

  • CES1. Conexi贸n con una base de datos
  • CES2. Recuperaci贸n de informaci贸n de una base de datos
  • CES3. Utilizaci贸n de conjunto de datos para almacenar la informaci贸n
  • CES4. Programaci贸n de aplicaciones que permitan actualizar y eliminar datos
  • CES5. Inicio de un proyecto web con Laravel 11
  • CES6. Arquitectura de una aplicaci贸n realizada con Laravel
  • CES7. Uso del MVC con *framework*
  • CES8. Uso de CRUD con el MVC y el *framework*
  • CES9. Configuraci贸n paginaci贸n de una aplicaci贸n
  • CES10. Roles en una aplicaci贸n
  • CES11. *Eloquent*
  • CES12. Datos de prueba: uso de factor铆as y semilleros

Actividades Formativas

Actividades de ense帽anza y aprendizaje. AEA

Criterios Evaluaci贸n

Instrumento Evaluaci贸n

Instrumento Calificaci贸n

AC 601. Documentar instalaci贸n servicio de bases de datos.

CE6a

IE1

IC1

PR 602. Tabla comparativa persistencia de datos.

CE6a

IE2

IC2

AC 603. Crear base de datos y carga de fichero, tras esto realizar consultas.

CE6a

IE1

IC1

AC 606. Crear y consultar datos en una tabla.

CE6b CE6c

IE1

IC1

PR 609. Crear base de datos del proyecto de e-commerce.

CE6b CE6c

IE2

IC2

AC 610. Cargar script de creaci贸n de base de datos.

CE6b CE6c

IE1

IC1

AC 611. Crear aplicaci贸n con MySQLi para listar datos.

CE6b CE6c CE6d

IE1

IC1

PR 613. Realiza una aplicaci贸n que te permita recuperar los datos del e-commerce.

CE6b CE6c CE6d

IE2

IC2

AC 614. Rehacer AC 610-611 utilizando PDO.

CE6b CE6c

IE1

IC1

RE 615. Inicio del Reto 3.

CE6b CE6c CE6d CE6e CE6f CE6g

IE2

IC2

AC 616. A帽adir control de usuarios en una base de datos.

CE6b CE6c CE6d CE6e CE6f CE6g

IE1

IC1

PR 617. A帽adir control de usuarios y vistas en la SA.

CE6b CE6c CE6d CE6e CE6f CE6g

IE2

IC2

AC 618. Modificar AC 616 aplicando transacciones.

CE6e CE6f CE6g

IE1

IC1

PR 619. Crear historial de creaci贸n en AC 618.

CE6e CE6f CE6g

IE2

IC2

AC 620. Exportar datos en un CSV.

CE6c

IE1

IC1

AC 623. Generar PDF con datos de la base de datos.

CE6c

IE1

IC1

PR 624. A帽adir funcionalidades a PR 613.

CE6f CE6g

IE2

IC2

AC 701. Configurar entorno desarrollo con Docker.

CE8a CE8b CE8c

IE1

IC1

AC 704. Configurar tres entornos de desarrollo que usaremos durante la UT.

CE8a CE8b CE8c

IE1

IC1

AC 705. Generar estructura de rutas para el proyecto de lista de tareas.

CE8c CE8d CE8g

IE1

IC1

PR 707. Generar estructura de rutas para el proyecto e-commerce.

CE8c CE8d CE8g

IE2

IC2

AC 708. Desarrollar el controlador para el proyecto de lista de tareas.

CE8c CE8d CE8g

IE1

IC1

PR 710. Desarrollar los controladores para el proyecto e-commerce.

CE8c CE8d CE8g

IE2

IC2

AC 711. Realizar la vista principal del proyecto de lista de tareas.

CE8c CE8d

IE1

IC1

PR 713. Realizar las vistas del proyecto e-commerce.

CE8c CE8d

IE2

IC2

AC 714. Mostrar listado de tareas del proyecto de lista de tareas.

CE8c CE8d CE8f

IE1

IC1

PR 716. Mostrar listado de productos en e-commerce.

CE8c CE8d CE8f

IE2

IC2

AC 717. Realizar las migraciones de la aplicaci贸n de tareas.

CE8f

IE1

IC1

PR 719. Realizar las migraciones del proyecto de e-commerce. Realizar un reset del proyecto.

CE8f

IE2

IC2

RE 720. Desarrollar el Reto 3 con Laravel.

CE8c CE8d CE8e CE8f CE8g

IE2

IC2

AC 721. Formulario para la creaci贸n de nuevas tareas.

CE8d CE8e

IE1

IC1

PR 723. Creaci贸n y edici贸n de productos en proyecto e-commerce.

CE8d CE8e

IE2

IC2

PR 724. Paginaci贸n en el listado de productos del e-commerce.

CE8f

IE2

IC2

AC 725. Sobre el proyecto de lista de tareas, muestra las tareas en el frontal en un orden aleatorio y en la administraci贸n en orden.

CE8a CE8b CE8c CE8d

IE1

IC1

PR 729. Roles en aplicaci贸n e-commerce.

CE8c CE8d

IE2

IC2

PR 731. Datos de inicio para proyecto e-commerce.

CE8a

IE2

IC2

Prueba de Auditor铆a.

Criterios Evaluaci贸n

Instrumento Evaluaci贸n

Instrumento Calificaci贸n

CU 625. Multi-opci贸n (test) sobre la unidad.

CE6a CE6b CE6c CE6e CE6f

IE4

IC5

PO 626. Prueba pr谩ctica sobre lo visto en la unidad.

CE6b CE6c CE6d CE6e CE6f

IE5

IC2

RE 732. Presentaci贸n Reto 3.

CE8a CE8c CE8d CE8e CE8f CE8g

IE3

IC4

Actividades de refuerzo. AR

Criterios Evaluaci贸n

Instrumento Evaluaci贸n

Instrumento Calificaci贸n

AR 604. Utilizar phpMyAdmin para realizar tareas sobre una base de datos.

CE6a

IE1

IC1

AR 607. Actualizar y eliminar registros de una base de datos.

CE6b CE6c

IE1

IC1

AR 621. Listar usuarios y exportarlos.

CE6c CE6g

IE1

IC1

AR 702. Configurar entorno desarrollo diferente a Docker.

CE8a CE8b CE8c

IE1

IC1

AR 706. Crear las rutas necesarias para poder realizar un blog y poder gestionarlo.

CE8c CE8d CE8g

IE1

IC1

AR 709. Generar los controladores del proyecto blog.

CE8c CE8d CE8g

IE1

IC1

AR 712. Desarrollar vistas del blog.

CE8c CE8d

IE1

IC1

AR 718. Realiza las migraciones de la aplicaci贸n de blog.

CE8f

IE1

IC1

AR 722. Gestionar la creaci贸n y edici贸n de categor铆as y post.

CE8d CE8e

IE1

IC1

AR 726. Generar enlaces que permitan filtrar.

CE8a CE8b CE8c CE8d

IE1

IC1

AR 728. Implementar roles en la aplicaci贸n de tareas.

CE8c CE8d

IE1

IC1

AR 730. Generar factor铆as para el proyecto de tareas.

CE8a

IE1

IC1

Actividades de profundizaci贸n. AP

Criterios Evaluaci贸n

Instrumento Evaluaci贸n

Instrumento Calificaci贸n

AP 605. Modificar una base de datos.

CE6a

IE1

IC1

AP 608. Modificar una base de datos para incluir otra tabla.

CE6b CE6c

IE1

IC1

AP 614. Modificar AC 611 para que permita borrar y editar datos.

CE6b CE6c CE6d

IE1

IC1

AP 622. Exportar datos en JSON.

CE6c CE6g

IE1

IC1

AP 703. Investigar cambios de Laravel 10 a 11.

CE8a CE8b CE8c

IE1

IC1

AP 715. Listar post y categor铆as en el frontal y en la administraci贸n.

CE8c CE8d CE8f

IE1

IC1

AP 727. Ordenar listado por orden alfab茅tico y por stock.

CE8a CE8b CE8c CE8d

IE1

IC1

Validaci贸n Criterios de Evaluaci贸n

Referencias