¿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/validationDespué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.
También en la biblioteca
Cliente Redis para C++: conexión, instalación y ejemplos de uso
NestJS para TypeScript: guía completa con ejemplos
Cliente Redis para Java: Jedis, Lettuce y Redisson — descripción general y ejemplos
Generación de informes PDF en Kotlin: iText, Apache PDFBox, OpenPDF
Guía completa de Symfony/Security para PHP con ejemplos