Saltar a contenido

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!
  1. ¿Qué es una página dinámica con PHP?
    1. Una página que cambia su contenido en función del código HTML.
    2. Una página que utiliza JavaScript para mostrar contenido variable.
    3. Una página que modifica su contenido en función de la interacción del usuario y datos de servidores.
    4. 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.

  1. ¿Para qué se utilizan principalmente las cabeceras de respuesta en PHP?
    1. Para enviar información específica del navegador al servidor.
    2. Para modificar la apariencia del contenido de la página.
    3. Para controlar el comportamiento de las páginas web cacheadas.
    4. 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.

  1. ¿Qué son las cookies en PHP?
    1. Datos almacenados en el servidor para identificar al usuario.
    2. Pequeños archivos guardados en el ordenador del usuario que el sitio web utiliza para recordar información sobre el usuario.
    3. Funciones integradas de PHP para mejorar la velocidad del sitio.
    4. 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.

  1. ¿Qué es una sesión en PHP?
    1. Una conexión continua entre el cliente y el servidor que permite intercambiar información constantemente.
    2. Un método para guardar datos del usuario en una base de datos a través de PHP.
    3. 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.
    4. 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.

  1. ¿Qué describe mejor el patrón de diseño MVC utilizado en el desarrollo web con PHP?
    1. MVC separa los datos de los usuarios de la lógica de negocio del backend.
    2. MVC divide la aplicación en tres partes interconectadas: modelo, vista y controlador.
    3. MVC es un tipo de base de datos utilizado exclusivamente en PHP.
    4. 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.

  1. ¿Qué es Composer en el contexto de desarrollo PHP?
    1. Un compilador de código PHP.
    2. Un gestor de librerías y dependencias para PHP.
    3. Una herramienta para la integración continua.
    4. Un framework de desarrollo web.
Respuesta correcta

Respuesta correcta: b. Un gestor de librerías y dependencias para PHP.

  1. ¿Cuál es el comando para iniciar un nuevo proyecto con Composer?
    1. composer start.
    2. composer create-project.
    3. composer init.
    4. composer new.
Respuesta correcta

Respuesta correcta: c. composer init.

  1. ¿Qué es Monolog en el contexto del desarrollo con PHP?
    1. Un framework para desarrollo web.
    2. Una librería para la gestión de logs.
    3. Un gestor de bases de datos.
    4. Un compilador de PHP.
Respuesta correcta

Respuesta correcta: b. Una librería para la gestión de logs.

  1. ¿Cómo se añadiría un FirePHPHandler a un logger en Monolog?
    1. $logger->addHandler(new FirePHPHandler());
    2. $logger->pushHandler(new FirePHPHandler());
    3. $logger->setHandler('FirePHP');
    4. $logger->enableFirePHP();
Respuesta correcta

Respuesta correcta: b. $logger->pushHandler(new FirePHPHandler());

  1. ¿Cómo se marca un método de prueba en PHPUnit?
    1. Debe comenzar con la palabra test.
    2. Debe terminar con la palabra Test.
    3. Debe ser declarado como privado.
    4. Debe retornar un valor booleano.
Respuesta correcta

Respuesta correcta: a. Debe comenzar con la palabra test.

Resumen UP

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

Referencias