Ir al contenido principal

Lección 7 · Autoevaluación

Cómo se usa

Esta página cubre todo lo de la lección 7: separar responsabilidades, el ruteador, el punto de entrada único y la estructura de carpetas.

Hay 9 preguntas y 3 ejercicios, con corrección inmediata.

Preguntas

Todavía sin contestar · 9 preguntas

Separar responsabilidades

1. ¿Qué hace el modelo en MVC?

Elegí una opción para verla

El modelo maneja los datos y las reglas: buscar, listar, insertar. No imprime HTML.

2. ¿Qué hace la vista?

Elegí una opción para verla

La vista solo presenta. Si consulta la base o decide reglas, la separación se rompe.

3. ¿Qué diferencia al controlador?

Elegí una opción para verla

El controlador coordina: recibe la petición, llama al modelo, y entrega el resultado a la vista.

El ruteador

4. ¿Qué hace un ruteador?

Elegí una opción para verla

Mira la dirección pedida y despacha al controlador que corresponde. Agregar una página es agregar una ruta.

5. ¿Qué es un front controller (punto de entrada único)?

Elegí una opción para verla

Un único archivo de entrada: todas las peticiones pasan por ahí, y desde ahí se cargan configuración, ruteo y seguridad.

6. ¿Qué ventaja tiene centralizar la seguridad en el punto de entrada?

Elegí una opción para verla

La comprobación de sesión o de permisos va en un solo lugar; con un archivo por pantalla hay que acordarse en todos.

La estructura

7. ¿Qué carpeta debe quedar expuesta al servidor?

Elegí una opción para verla

Solo public/: CSS, JS e imágenes. El código PHP queda fuera del alcance del navegador.

8. ¿Dónde va la lógica de consultas a la base?

Elegí una opción para verla

En los modelos. La vista no consulta y el ruteador solo despacha.

9. ¿Por qué conviene que el código no esté en public/?

Elegí una opción para verla

Para que el servidor web no pueda entregar archivos de código directamente. Es una capa de protección.

Ejercicios de práctica

Ejercicio 1

Escribí un ruteador con match que atienda /, /productos y /ventas, y devuelva 404 para lo demás.

$ruta = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);

match ($ruta) {
    "/", "/productos" => (new ProductoController())->listar(),
    "/ventas" => (new VentaController())->listar(),
    default => (http_response_code(404) and print("No encontrado")),
};

Ejercicio 2

Explicá la diferencia entre modelo, vista y controlador usando una pantalla del buffet.

El modelo trae los productos de la base; el controlador recibe la petición de «ver catálogo», pide los productos al modelo y elige la vista; la vista muestra la lista con el HTML, sin consultar nada.

Ejercicio 3

¿Dónde pondrías la comprobación de que el usuario está logueado? Justificá.

En el punto de entrada (o en un middleware que se ejecute ahí): así vale para todas las páginas de una vez, en lugar de repetir el if en cada archivo.

Cómo saber si está bien

Si acertaste 7 o más, la lección está firme. La regla que hay que poder repetir: la vista no consulta, el modelo no imprime.

Lo que hay que poder explicar

  • Modelo = datos; vista = presentación; controlador = coordina.
  • El ruteador despacha cada dirección.
  • Un solo punto de entrada centraliza configuración y seguridad.
  • Solo public/ se expone.

Licencia. El material de esta página es elaboración propia de Prof Mauro Bobyk —a partir de las fuentes que detalla el pie del sitio— y se publica bajo una licencia Creative Commons BY-NC-SA 4.0.