- 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
Clase de validación reutilizable para formularios en PHP
Clase 11 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
Optimizar y reutilizar código es fundamental en la programación web. Crear una clase específica para validar formularios en PHP permite que tengas un sistema más profesional, limpio y fácil de mantener, impulsando una programación eficiente y ordenada. A continuación, conoce cómo implementar esta técnica en tus proyectos.
¿Qué es programar con intención en PHP?
Eliminar repeticiones y clarificar tu lógica es programar con intención. El concepto se refiere a que diseñes tu clase y estructura anticipando cómo deseas que funcione, aunque inicialmente la lógica interna no esté implementada. Simplemente defines las acciones que quieres lograr y luego completas su funcionalidad.
¿Cómo implementar una clase de validación reutilizable?
La creación de una clase validator en PHP ofrecerá métodos claros para comprobar cada campo del formulario según reglas predefinidas. Trabajaremos inicialmente con la declaración formal:
protected array $errores = [];
protected array $datos;
protected array $reglas;
public function __construct(array $datos, array $reglas)
{
$this->datos = $datos;
$this->reglas = $reglas;
}
¿Cómo estructurar y separar las reglas de validación?
La separación de reglas para su posterior validación debe ser precisa, puedes utilizar la función explode() para separarlas mediante un carácter específico, generalmente una barra vertical |:
$reglasSeparadas = explode('|', $reglas);
Si la regla cuenta con parámetros adicionales, nuevamente emplearemos explode(), pero con array_pad() para asegurar consistencia en la evaluación:
[$nombre, $parametro] = array_pad(explode(':', $regla), 2, null);
Esto garantiza que siempre tengas un arreglo con exactamente dos posiciones disponibles, perfecto para una evaluación precisa.
¿Qué lógica utilizar para evaluar los campos del formulario?
Para validar cada campo del formulario:
- Limpia el valor obtenido con funciones como
trim(). - Evalúa si se cumplen o no las reglas definidas, empleando un método de evaluación condicional como una estructura
match:
$error = match($nombre){
'requerido' => empty($valor) ? 'El campo es requerido' : null,
'minimo' => strlen($valor) < $parametro ? "Debe tener mínimo {$parametro} caracteres" : null,
'maximo' => strlen($valor) > $parametro ? "Debe tener máximo {$parametro} caracteres" : null,
'url' => filter_var($valor, FILTER_VALIDATE_URL) === false ? 'Debe ser una URL válida' : null,
default => null,
};
Si algún error se presenta, guardas inmediatamente el mensaje y detienes cualquier evaluación posterior con break. Esto evita redundancias y mensajes confusos.
¿Cómo devolver los resultados de la validación?
Dos métodos importantes para manejar resultados:
- Método que indica si la validación fue exitosa:
public function pasa(): bool
{
return empty($this->errores);
}
- Método para devolver los errores obtenidos:
public function errores(): array
{
return $this->errores;
}
Estos métodos facilitan que tu validación sea intuitiva y clara a la hora de usarla en otros lugares de tu código.
¿Cómo aplicar esta clase en tus formularios?
Utiliza esta clase fácilmente en tu controlador o archivo de gestión del formulario de esta manera:
$validator = new Validator($_POST, [
'titulo' => 'requerido|minimo:3|maximo:190',
'url' => 'requerido|url|maximo:190',
'descripcion' => 'requerido|minimo:3|maximo:500'
]);
if ($validator->pasa()){
// Guarda los datos en la base de datos
}else{
// Procesa y muestra errores
$errores = $validator->errores();
}
Siguiendo estos lineamientos, obtendrás un código eficiente, reusable y fácil de mantener a largo plazo. ¡Anímate a aplicar estos consejos para mejorar tus proyectos en PHP! ¿Tienes más dudas sobre este proceso? Déjame tus comentarios debajo.