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!
-
驴Qu茅 significa PDO en el contexto de PHP?
- PHP Data Optimization
- PHP Directory Object
- PHP Data Objects
- PHP Development Operator
Respuesta correcta
Respuesta correcta: c. PHP Data Objects
-
驴Cu谩l de las siguientes operaciones corresponde a la "U" de CRUD?
- Unir
- Utilizar
- Usar
- Actualizar
Respuesta correcta
Respuesta correcta: d. Actualizar
-
驴Qu茅 ventaja principal ofrecen las sentencias preparadas en PDO?
- Mejor compresi贸n de datos
- Menor uso de memoria
- Prevenci贸n de inyecciones SQL
- Generaci贸n autom谩tica de vistas
Respuesta correcta
Respuesta correcta: c. Prevenci贸n de inyecciones SQL
-
驴Cu谩l es el patr贸n arquitect贸nico que sigue Laravel por defecto?
- Singleton
- MVC
- MVP
- DAO
Respuesta correcta
Respuesta correcta: b. MVC
-
驴Qu茅 hace el m茅todo
lastInsertId()
en PDO?- Devuelve el n煤mero total de filas
- Borra el 煤ltimo registro insertado
- Obtiene el ID del 煤ltimo registro insertado
- Lanza una excepci贸n
Respuesta correcta
Respuesta correcta: c. Obtiene el ID del 煤ltimo registro insertado
-
驴D贸nde se definen las rutas web en un proyecto Laravel?
- config/web.php
- routes/api.php
- public/web.php
- routes/web.php
Respuesta correcta
Respuesta correcta: d. routes/web.php
-
驴Cu谩l es el ORM utilizado por Laravel para interactuar con bases de datos?
- Doctrine
- Propel
- Eloquent
- ActiveRecord
Respuesta correcta
Respuesta correcta: c. Eloquent
-
驴Qu茅 m茅todo Artisan se utiliza para crear un controlador tipo resource en Laravel?
php artisan controller:make
php artisan make:controller -r
php artisan controller new
php artisan generate controller
Respuesta correcta
Respuesta correcta: b.
php artisan make:controller -r
-
驴Qu茅 hace la instrucci贸n
Route::resource('post', PostController::class);
en Laravel?- Define una sola ruta llamada
post
- Crea rutas personalizadas para el controlador
- Define todas las rutas CRUD autom谩ticamente
- Elimina todas las rutas relacionadas con
post
Respuesta correcta
Respuesta correcta: c. Define todas las rutas CRUD autom谩ticamente
- Define una sola ruta llamada
-
驴Qu茅 tipo de resultado devuelve el m茅todo
fetch(PDO::FETCH_ASSOC)
?- Un objeto
- Un array indexado num茅ricamente
- Un array asociativo con nombres de columnas
- Un booleano
Respuesta correcta
Respuesta correcta: c. Un array asociativo con nombres de columnas
Resumen UP¶
Resumen Unidad de Programaci贸n
Unidad de Programaci贸n
UP 04. Accediendo a datos con framework
Duraci贸n
24 Sesiones - 48H
Unidades de Trabajo de la UP
Resultados de Aprendizaje
RA6. Desarrolla aplicaciones de acceso a almacenes de datos, aplicando medidas para mantener la seguridad y la integridad de la informaci贸n.
RA8. Genera p谩ginas web din谩micas analizando y utilizando tecnolog铆as y frameworks del servidor web que a帽adan c贸digo al lenguaje de marcas.
Preconocimiento
Conocimientos adquiridos en el m贸dulo de Base de Datos.
Conocimientos de PHP y de BBDD
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¶
Resultado de Aprendizaje
RA6. Desarrolla aplicaciones de acceso a almacenes de datos, aplicando medidas para mantener la seguridad y la integridad de la informaci贸n.
Duraci贸n
12 Sesiones - 24H
CCEE
Actividades Obligatorias
(AC / PR / RE / CU / PO)
Actividades Refuerzo / Profundizaci贸n
(AR / AP)
Puntos
Relevancia porcentual
CE6a
AC 601, PR 602, AC 603, CU 625
AR 604, AP 605
5
14.28%
CE6b
AC 614, RE 615, AC 606, PR 609, AC 610, AC 611, PR 613, AC 616, PR 617, CU 625, PO 626
AR 607, AP 608, AP 612
15
14.28%
CE6c
AC 623, AC 606, PR 609, AC 610, AC 611, PR 613, AC 614, RE 615, AC 616, PR 617, AC 620, CU 625, PO 626
AR 607, AP 608, AP 612, AR 621, AP 622
20
14.28%
CE6d
AC 611, PR 613, RE 615, AC 616, PR 617, PO 626
AP 612
15
14.28%
CE6e
RE 615, AC 616, PR 617, AC 618, PR 619, CU 625, PO 626
15
14.28%
CE6f
RE 615, AC 616, PR 617, AC 618, PR 619, PR 624, CU 625, PO 626
15
14.28%
CE6g
RE 615, AC 616, PR 617, AC 618, PR 619, PR 624
AR 621, AP 622
10
14.28%
Resultado de Aprendizaje
RA8. Genera p谩ginas web din谩micas analizando y utilizando tecnolog铆as y frameworks del servidor web que a帽adan c贸digo al lenguaje de marcas.
Duraci贸n
12 Sesiones - 24H
CCEE
Actividades Obligatorias
(AC / PR / RE / CU / PO)
Actividades Refuerzo / Profundizaci贸n
(AR / AP)
Puntos
Relevancia porcentual
CE8a
AC 701, AC 704, AC 725, PR 731, RE 732
AR 702, AP 703, AR 726, AP 727, AR 730
5
14.28%
CE8b
AC 701, AC 704, AC 725
AR 702, AP 703, AR 726, AP 727
3
14.28%
CE8c
AC 701, AC 704, AC 705, PR 707, AC 708, PR 710, AC 711, PR 713, AC 714, PR 716, RE 720, AC 725, PR 729, RE 732
AR 702, AP 703, AR 706, AR 709, AR 712, AP 715, AR 726, AP 727, AR 728
15
14.28%
CE8d
AC 705, PR 707, AC 708, PR 710, AC 711, PR 713, AC 714, PR 716, RE 720, AC 721, PR 723, AC 725, PR 729, RE 732
AR 706, AR 709, AR 712, AP 715, AR 722, AR 726, AP 727, AR 728
25
14.28%
CE8e
RE 720, AC 721, PR 723, RE 732
AR 722
10
14.28%
CE8f
AC 714, PR 716, AC 717, PR 719, RE 720, PR 724, RE 732
AP 715, AR 718
15
14.28%
CE8g
AC 705, PR 707, AC 708, PR 710, RE 720, RE 732
AR 706, AR 709
20
14.28%
Referencias¶
- Web: PDO en PHP - Manual oficial por php.net
- Web: MVC (Modelo Vista Controlador) en PHP nativo por V铆ctor Robles
- Manual: Sistema de autenticaci贸n con PHP
- Web: Laravel - Documentaci贸n oficial por Laravel
- Web: Inyecci贸n SQL - OWASP