- 1

Portafolio personal con PHP puro: estructura y router propio
01:12 - 2

Construcción de estructura web básica con PHP
05:30 - 3

Vistas parciales en PHP para código reutilizable
08:11 - 4

Integración de Tailwind CSS para mejorar el diseño de menús web
04:06 - 5

Activar botones de menú dinámicamente con PHP
07:08 - 6

Implementación del patrón Front Controller en PHP
09:44 - 7

Conexión a MySQL con PDO y consultas dinámicas en PHP
09:02 quiz de Introducción
Refactorización de middleware con clases e interfaces en PHP
Clase 23 de 33 • Curso de PHP Avanzado
Contenido del curso
- 22

Middleware en PHP para proteger rutas con autenticación
07:02 - 23

Refactorización de middleware con clases e interfaces en PHP
05:26 - 24

Vista de inicio de sesión con PHP y control de acceso
07:21 - 25

Validación de credenciales y consultas de usuario en la base de datos
08:55 - 26

Cifrado de contraseñas y gestión de sesiones en PHP
07:31 quiz de Seguridad
- 27

Separación de lógica de autenticación en clases PHP
05:13 - 28

Redirección automática después de enviar formularios
08:05 - 29

Manejo de mensajes flash en PHP con Session Manager
05:50 - 30

Helpers para gestión de sesiones en PHP
08:06 - 31

Integración de funciones con sistema de sesiones en PHP
07:37 - 32

Sistema de redirecciones con mensajes en PHP
06:00 - 33

Middleware para proteger rutas de usuarios logueados en PHP
04:11
Un buen sistema requiere orden y profesionalismo en su estructura, especialmente cuando trabajamos con middleware. Optimizar tu implementación básica en middleware mediante clases e interfaces te permite obtener un código más legible, mantenible y escalable en PHP. La siguiente guía te muestra cómo crear middleware utilizando una clase con método estático y una interfaz que asegure cumplimiento del contrato.
¿Por qué usar una clase Middleware?
Adoptar una clase middleware con un método estático llamado run mejora notablemente la legibilidad del código. La idea central es sencilla: encapsular toda la lógica del middleware dentro de una clase específica.
Para implementar esta clase middleware: - Crea un nuevo archivo llamado middleware.php. - Define el espacio de nombres (namespace). - Agrega el método estático público llamado run, que acepta una instancia del middleware.
namespace App;
class Middleware {
public static function run($middleware) {
(new $middleware())->handle();
}
}
Esto permite invocarlo con mayor claridad en tu sistema de rutas, mejorando inmediatamente la comprensión de lo que sucede al observar el código.
¿Por qué implementar interfaces en middleware?
Para asegurar consistencia y profesionalismo, es recomendable crear interfaces. Una interfaz es un contrato que obliga a todas las clases que la implementen a seguir una estructura determinada. Esto facilita mantener y ampliar el proyecto en el futuro.
Pasos a seguir: - Genera un archivo llamado MiddlewareInterface.php. - Declara la interfaz con el método requerido handle.
namespace App;
interface MiddlewareInterface {
public function handle(): void;
}
Luego, cada middleware debe implementar dicha interfaz explícitamente:
namespace App;
class Autenticacion implements MiddlewareInterface {
public function handle(): void {
// tu lógica aquí
}
}
Si la clase no implementa correctamente la interfaz, el sistema generará errores inmediatamente, mostrando violación del contrato y facilitando una depuración más precisa y rápida.
¿Qué beneficios aporta estructurar tu middleware con interfaces?
Entre las principales ventajas destacan: - Legibilidad y organización: Es más sencillo revisar cómo funciona el middleware al observar la clase que lo administra. - Mantenibilidad: Es fácil ajustar o añadir nuevos middleware respetando el estándar establecido por la interfaz. - Escalabilidad: Al crecer el sistema con múltiples middleware, todos seguirán una estructura estandarizada, facilitando su gestión.
¿Qué desafío puedes abordar ahora?
Pon en práctica lo aprendido creando un middleware llamado guest. Este middleware deberá activarse únicamente en rutas específicas donde se espera que el usuario no esté autenticado, como el inicio de sesión. Asegúrate de que implemente también la interfaz definida anteriormente.