Validación de datos en PHP con la librería Respect\\Validation

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Respect\\Validation?

Respect\\Validation es una biblioteca potente y expresiva para la validación de datos en PHP. Permite construir reglas de verificación complejas mediante cadenas de métodos, lo que hace que el código sea limpio y legible. La biblioteca admite más de 60 reglas integradas (desde verificar email hasta validar CPF/CNPJ) y se extiende fácilmente con reglas personalizadas.

¿Para qué sirve la validación?

La validación de datos es una etapa crítica en el procesamiento de la entrada del usuario, solicitudes API o datos de fuentes externas. Sin ella, la aplicación es vulnerable a:

  • Inyecciones SQL y ataques XSS
  • Datos incorrectos que causan errores
  • Violación de la lógica de negocio

Respect\\Validation resuelve estos problemas proporcionando una interfaz unificada para filtrar y verificar.

Instalación

Instale la biblioteca a través de Composer:

composer require respect/validation

Después de la instalación, incluya el cargador automático y use el espacio de nombres:

require 'vendor/autoload.php';use Respect\\Validation\\Validator as v;

Funciones principales

La biblioteca ofrece:

  • Cadenas de reglas: v::alnum()->noWhitespace()->length(5, 20)->validate($input)
  • Mensajes de error personalizados: v::email()->setName('Email')->assert($input)
  • Validación grupal: v::attribute('name', v::stringType())->attribute('age', v::intVal())
  • Campos opcionales y reglas condicionales (por ejemplo, verificar solo si el campo está presente).

Ejemplo de código en PHP

Validación simple de un formulario de registro:

<?phprequire 'vendor/autoload.php';use Respect\\Validation\\Validator as v;

$data = [ 'username' => 'john_doe', 'email' => 'john@example.com', 'password' => 'secret123', 'age' => 25];

$usernameValidator = v::alnum()->noWhitespace()->length(4, 20);$emailValidator = v::email();$passwordValidator = v::length(8, 64);$ageValidator = v::intVal()->between(18, 120);

try { $usernameValidator->setName('Username')->assert($data['username']); $emailValidator->setName('Email')->assert($data['email']); $passwordValidator->setName('Password')->assert($data['password']); $ageValidator->setName('Age')->assert($data['age']); echo '¡Todos los datos son válidos!';} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { echo implode('<br>', $e->getMessages());}

Resultado en caso de error: "Username must contain only letters and digits" etc.

Cuándo usarlo

  • Formularios en sitios web — registro, contacto, pedidos
  • REST API — verificación de solicitudes JSON antes del procesamiento
  • Importación de datos — validación de CSV/Excel antes de escribir en la BD
  • Scripts de línea de comandos — verificación de argumentos CLI

Respect\\Validation es adecuado para proyectos de cualquier tamaño, desde sitios simples hasta frameworks (Laravel, Symfony). Reemplaza las engorrosas construcciones if-else y simplifica las pruebas.

Recommendations