Propuesta didáctica UP 03: Programación web¶
Introducción¶
La Unidad de Programación "Programación web" tiene como objetivo dotar a los estudiantes de las competencias necesarias para desarrollar aplicaciones web dinámicas, organizadas y seguras. A lo largo de esta unidad, se trabajará con lenguajes de marcas combinados con tecnologías de servidor, permitiendo construir aplicaciones que respondan a especificaciones funcionales reales, manteniendo una clara separación entre la lógica de negocio y el código de presentación. Se hará especial énfasis en el manejo eficiente de variables en el servidor, la gestión de estados en las aplicaciones y el flujo de información entre cliente y servidor. Además, se introducirán prácticas de desarrollo seguro, como la autenticación de usuarios y el uso correcto de cabeceras HTTP, garantizando así la integridad y confidencialidad de los datos. También se estudiará el patrón de arquitectura MVC en PHP, con el fin de fomentar una organización estructurada del código que facilite su mantenimiento a largo plazo.
Además, se centrará en la calidad del software, capacitando al alumnado en el diseño y ejecución de pruebas unitarias para proyectos en PHP. Utilizando PHPUnit como herramienta principal, se abordará el enfoque de desarrollo dirigido por pruebas (TDD), aprendiendo a escribir pruebas antes de implementar funcionalidad. Los estudiantes aprenderán a trabajar con aserciones, gestionar excepciones en pruebas, y a utilizar datos dinámicos mediante proveedores. Asimismo, se enseñará a configurar entornos de prueba, estructurar proyectos utilizando Composer, y generar informes que analicen la calidad del código. Con todo ello, el alumnado estará preparado para aplicar técnicas modernas de desarrollo que mejoren la fiabilidad, mantenibilidad y sostenibilidad de sus aplicaciones web.
Cuestionario inicial¶
¡Ponte a prueba!
- ¿Qué es una página dinámica con PHP?
- Una página que cambia su contenido en función del código HTML.
- Una página que utiliza JavaScript para mostrar contenido variable.
- Una página que modifica su contenido en función de la interacción del usuario y datos de servidores.
- Una página que está escrita únicamente en PHP sin HTML.
Respuesta correcta
Respuesta correcta: c. Una página que modifica su contenido en función de la interacción del usuario y datos de servidores.
- ¿Para qué se utilizan principalmente las cabeceras de respuesta en PHP?
- Para enviar información específica del navegador al servidor.
- Para modificar la apariencia del contenido de la página.
- Para controlar el comportamiento de las páginas web cacheadas.
- Para establecer parámetros de conexión con la base de datos.
Respuesta correcta
Respuesta correcta: c. Para controlar el comportamiento de las páginas web cacheadas.
- ¿Qué son las cookies en PHP?
- Datos almacenados en el servidor para identificar al usuario.
- Pequeños archivos guardados en el ordenador del usuario que el sitio web utiliza para recordar información sobre el usuario.
- Funciones integradas de PHP para mejorar la velocidad del sitio.
- Herramientas de desarrollo para depurar el código PHP.
Respuesta correcta
Respuesta correcta: b. Pequeños archivos guardados en el ordenador del usuario que el sitio web utiliza para recordar información sobre el usuario.
- ¿Qué es una sesión en PHP?
- Una conexión continua entre el cliente y el servidor que permite intercambiar información constantemente.
- Un método para guardar datos del usuario en una base de datos a través de PHP.
- Una forma de guardar información que se puede utilizar a través de múltiples páginas durante la visita del usuario al sitio.
- Un tipo de cookie que mejora la seguridad del sitio web.
Respuesta correcta
Respuesta correcta: c. Una forma de guardar información que se puede utilizar a través de múltiples páginas durante la visita del usuario al sitio.
- ¿Qué describe mejor el patrón de diseño MVC utilizado en el desarrollo web con PHP?
- MVC separa los datos de los usuarios de la lógica de negocio del backend.
- MVC divide la aplicación en tres partes interconectadas: modelo, vista y controlador.
- MVC es un tipo de base de datos utilizado exclusivamente en PHP.
- MVC combina todas las funciones de la aplicación en un único archivo para mejorar el rendimiento.
Respuesta correcta
Respuesta correcta: b. MVC divide la aplicación en tres partes interconectadas: modelo, vista y controlador.
- ¿Qué es Composer en el contexto de desarrollo PHP?
- Un compilador de código PHP.
- Un gestor de librerías y dependencias para PHP.
- Una herramienta para la integración continua.
- Un framework de desarrollo web.
Respuesta correcta
Respuesta correcta: b. Un gestor de librerías y dependencias para PHP.
- ¿Cuál es el comando para iniciar un nuevo proyecto con Composer?
composer start
.composer create-project
.composer init
.composer new
.
Respuesta correcta
Respuesta correcta: c. composer init
.
- ¿Qué es Monolog en el contexto del desarrollo con PHP?
- Un framework para desarrollo web.
- Una librería para la gestión de logs.
- Un gestor de bases de datos.
- Un compilador de PHP.
Respuesta correcta
Respuesta correcta: b. Una librería para la gestión de logs.
- ¿Cómo se añadiría un
FirePHPHandler
a un logger en Monolog?$logger->addHandler(new FirePHPHandler());
$logger->pushHandler(new FirePHPHandler());
$logger->setHandler('FirePHP');
$logger->enableFirePHP();
Respuesta correcta
Respuesta correcta: b. $logger->pushHandler(new FirePHPHandler());
- ¿Cómo se marca un método de prueba en PHPUnit?
- Debe comenzar con la palabra
test
. - Debe terminar con la palabra
Test
. - Debe ser declarado como privado.
- Debe retornar un valor booleano.
- Debe comenzar con la palabra
Respuesta correcta
Respuesta correcta: a. Debe comenzar con la palabra test
.
Resumen UP¶
Resumen Unidad de Programación
Unidad de Programación
UP 03. Programación web
Duración
14 Sesiones - 28H
Unidades de Trabajo de la UP
UT 04. Programación web
UT 05. Herramientas programación web
Resultados de Aprendizaje
RA4. Desarrolla aplicaciones web embebidas en lenguajes de marcas analizando e incorporando funcionalidades según especificaciones.
RA5.Desarrolla aplicaciones web identificando y aplicando mecanismos para separar el código de presentación de la lógica de negocio.
Preconocimiento
Conocimientos básicos de PHP.
Objetivos Generales
- 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.
- CPRf: Integrar contenidos en la lógica de una aplicación web, desarrollando componentes de acceso a datos adecuados a las especificaciones.
- CPRg: Desarrollar interfaces en aplicaciones web de acuerdo con un manual de estilo, utilizando lenguajes de marcas y estándares web.
- 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.
- CPRm: Completar planes de pruebas verificando el funcionamiento de los componentes software desarrollados, según las especificaciones.
- CPRn: Elaborar y mantener la documentación de los procesos de desarrollo, utilizando herramientas de generación de documentación y control de versiones.
Objetivos Didácticos
- OD1: Identificar las variables en el servidor.
- OD2: Analizar la gestión de estados en una aplicación.
- OD3: Gestionar de manera segura la información en el servidor.
- OD4: Identificar métodos de documentación.
- OD5: Realizar pruebas unitarias.
- OD6: Interpretar logs.
Contenidos Específicos
- CES1. Variables globales en el servidor
- CES2. Formularios
- CES3. Cabeceras de respuesta de los formularios
- CES4. Gestión de estados
- CES5. Autentificación segura de usuarios
- CES6. Patrón MVC en PHP
- CES7. Configuración de Composer
- CES8. Utilización de MonologMonolog
- CES9. Realización de documentación con phpDocumentor
- CES10. Diseño de pruebas unitarias
Actividades Formativas
Actividades de enseñanza y aprendizaje. AEA
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AC 401. Valores de $_SERVER
y paso de parámetros por GET.
CE4a
IE1
IC1
AC 402. Formulario con paso por parámetros con GET.
CE4a CE4b
IE1
IC1
AC 403. Formulario con paso por parámetros con POST.
CE4a CE4b
IE1
IC1
PR 405. Formulario para subir archivos.
CE4a CE4b
IE1
IC1
AC 407. Desarrollar un script que redirija al usuario en función de la hora.
CE4c
IE1
IC1
PR 409. Recoger datos mediante formulario web y almacenarlos en un CSV.
CE4a CE4b CE4c
IE2
IC2
AC 410. Usar cookies para informar si es la primera visita.
CE4b CE4c CE4f
IE1
IC1
AC 412. Modificar AC 410 para no usar cookies.
CE4b CE4c CE4f
IE1
IC1
PR 413. Mediante sesiones, dividir el formulario de AC 402.
CE4a CE4b CE4c CE4f
IE1
IC1
AC 414. Generar un formulario de inicio de sesión, programar controlador que lo recoja.
CE4c CE4d CE4e CE5a CE5b CE5d
IE1
IC1
AC 417. Modificar AC 414 para que el acceso sea seguro.
CE4c CE4d CE4e CE5a CE5b CE5d
IE1
IC1
PR 419. Implementar inicio de sesión en la SA.
CE5c CE5e CE5f CE5g CE5h
IE2
IC2
RE 420. Inicio del Reto 2.
CE5a CE5b CE5c CE5d CE5e CE5f CE5g CE5h
IE2
IC2
AC 501. Composer para administrar las dependencias de PHP.
CE4f CE5h
IE1
IC1
AC 503. Crea un nuevo proyecto con Composer llamado Monologos.
CE4f CE5h
IE1
IC1
AC 504. Ampliar AC503
CE4f CE5h
IE1
IC1
AC 505. Sobre AC 504 configurar phpDocumentor.
CE4f CE5h
IE1
IC1
RE 506. Iniciar documentación del Reto 2.
CE4f CE5h
IE2
IC2
AC 507. Pruebas unitarias sobre AC 505.
CE4f CE5h
IE1
IC1
Prueba de Auditoría.
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
CU 421. Multi-opción (test) sobre la unidad.
CE4a CE4b CE4d CE5a CE5b CE5e CE5g
IE4
IC5
PO 422. Prueba práctica sobre lo visto en la unidad.
CE4b CE4c CE4d CE4e CE4f CE5b CE5c CE5d CE5f CE5g
IE5
IE2
Actividades de refuerzo. AR
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AR 404. A partir de AC 403, introducir validaciones.
CE4a CE4b
IE1
IC1
AR 411. Almacenar valor en una cookie.
CE4b CE4c CE4f
IE1
IC1
AR 415. Formulario de inicio de sesión para acceder a listado.
CE4c CE4d CE4e CE5a CE5b CE5d
IE1
IC1
Actividades de profundización. AP
Criterios Evaluación
Instrumento Evaluación
Instrumento Calificación
AP 406. Modificar PR 405 para que permita subir imágenes.
CE4a CE4b
IE1
IC1
AP 408. Desarrollar script para saber cuándo se ha modificado cierto fichero.
CE4c
IE1
IC1
AP 416. Modificar AC 414 para que si no has iniciado sesión te redirija al login.
CE4c CE4d CE4e CE5a CE5b CE5d
IE1
IC1
AP 418. Desarrollar un sistema de registro de usuarios en PHP utilizando el patrón de diseño MVC con manejo de sesiones o cookies.
CE5e CE5f CE5g CE5h
IE1
IC1
AP 502. Implementar Composer en AC 414.
CE4f CE5h
IE1
IC1
Validación Criterios de Evaluación¶
Resultado de Aprendizaje
RA4. Desarrolla aplicaciones web embebidas en lenguajes de marcas analizando e incorporando funcionalidades según especificaciones.
Duración
8 Sesiones - 16H
CCEE
Actividades Obligatorias
(AC / PR / RE / CU / PO)
Actividades Refuerzo / Profundización
(AR / AP)
Puntos
Relevancia porcentual
CE4a
AC 401, AC 402, AC 403, PR 405, PR 409, PR 413, CU 421
AR 404, AP 406
10
14.28%
CE4b
AC 402, AC 403, PR 405, PR 409, AC 410, AC 412, PR 413, CU 421, PO 422
AR 404, AP 406, AR 411
15
14.28%
CE4c
AC 407, PR 409, AC 410, AC 420, PR 413, AC 414, AC 417, PO 422
AP 408, AR 411, AR 415, AP 416
15
14.28%
CE4d
AC 414, AC 417, CU 421, PO 422
AR 415, AP 416
10
14.28%
CE4e
AC 414, AC 417, PO 422
AR 415, AP 416
10
14.28%
CE4f
AC 410, AC 410, PR 413, PO 422
AR 411
10
14.28%
CE4g
AC 501, AC 503, AC 504, AC 505, RE 506, AC 507
AP 502
15
14.28%
Resultado de Aprendizaje
RA5. Desarrolla aplicaciones web identificando y aplicando mecanismos para separar el código de presentación de la lógica de negocio.
Duración
6 Sesiones - 12H
CCEE
Actividades Obligatorias
(AC / PR / RE / CU / PO)
Actividades Refuerzo / Profundización
(AR / AP)
Puntos
Relevancia porcentual
CE5a
AC 414, AC 417, RE 420, CU 421
AR 415, AP 416
5
12.5%
CE5b
AC 414, AC 417, RE 420, CU 421, PO 422
AR 415, AP 416
10
12.5%
CE5c
PR 419, RE 420, PO 422
10
12.5%
CE5d
AC 414, AC 417, RE 420, PO 422
AR 415, AP 416
10
12.5%
CE5e
PR 419, RE 420, CU 421
AP 418
5
12.5%
CE5f
PR 419, RE 420, PO 422
AP 418
10
12.5%
CE5g
PR 419, RE 420, CU 421, PO 422
AP 418
11
12.5%
C5h
PR 419, AC 501, AC 503, AC 504, AC 505, RE 506, AC 507
AP 418, AP 502
10
12.5%
Referencias¶
- Manual: Manual de PHP
- Manual: Manual de OO en PHP
- Web: Autenticación HTTP con PHP
- Manual: Unit Testing con PHPUnit — Parte 1, de Emiliano Zublena.
- Manual: PHP Monolog
Links de interés¶
- Web: MVC (Modelo Vista Controlador) en PHP nativo por Víctor Robles
- Manual: Sistema de autenticación con PHP
- Web: Tutorial de Composer