Validación en PHP, usando Valitron

En este post te mostraré a validar los datos que el usuario ingresa en PHP ya sea a través de un formulario o de otras fuentes; usando la librería Valitron, que funciona muy bien para validar en PHP.

El repositorio de esta librería está aquí, y su uso es simple, además de que no requiere ningún framework o dependencia externa.

Un extra que tiene esta librería de validación de PHP es que permite mostrar los mensajes en idioma español.

Nota: el código que se expone aquí, es decir, la demostración, está en mi GitHub.

Ventajas de Valitron

Como lo dije, esta librería permite un uso simple pero poderoso. Las ventajas son:

  • Obtener los errores como un arreglo, útil si queremos mostrarlos en un formulario o como respuesta a una mal llamada a la API
  • No tiene dependencias
  • Provee un método para saber si los datos son o no válidos
  • Tiene reglas de validación predefinidas

Instalar Valitron

Esta librería, como muchas otras, se instala usando Composer; si no cuentas con Composer mira en este post cómo instalarlo.

Cuando lo tengas instalado ejecuta lo siguiente:

composer require vlucas/valitron

O en tu archivo composer.json dentro de dependencies agrega:

"vlucas/valitron": "^1.4"

Después ejecuta composer update.

Ahora carga el autoload con:

require "vendor/autoload.php"

Validar formularios con Valitron

Ahora veamos cómo usar esta magnífica librería de validación de formularios.

Idioma español

Comienza indicando el idioma de los mensajes de validación:

Como ves, el archivo de traducciones está incluido en el mismo repositorio. Este código debe ser ejecutado en el inicio de tu app, antes de hacer las validaciones.

Primer validación

Una validación queda así de simple:

Analicemos. Primero creamos un validador, pasándole un arreglo de datos que se van a validar.

En este caso los datos son $_POST, que es un arreglo que tiene claves y valores (recuerda que podría ser cualquier otro arreglo). Por ejemplo:

["nombre"] => "Luis"

Este validador tomará esos índices y los comparará con las reglas.

Las reglas se agregan con:

$v->rule("nombre de regla", "posición en arreglo");

También se pueden agregar todas las reglas de una vez con el método rules:

$v->rules($arregloDeReglas);

Para saber si los datos son válidos o no, se invoca al método validate que regresa un true o false.

Finalmente, si se desean mostrar los errores, se pueden obtener con el método errors.

Por favor fíjate en que este método devuelve un arreglo de arreglos, ya que agrupa los errores por campos.

Así que, si quieres mostrar a todos los errores, simplemente recorre los arreglos y luego recorre cada arreglo (en los ejemplos se ve de mejor manera)

Esto es todo lo que necesitas saber sobre la validación de formularios con Valitron, abajo dejaré un ejemplo. Si quieres indagar más sobre el tema, mira esto.

Ejemplo de validación en PHP con Valitron

Vamos a crear un formulario que más tarde será validado. Las reglas son:

  • Edad es obligatoria, debe ser un número, y mayor que 17: regla required, numeric y min
  • Correo es obligatorio, y debe ser un correo válido: regla required y email
  • Nombre es obligatorio: regla required
  • La contraseña y la confirmación de la contraseña deben coincidir: regla equals

Recuerda que el arreglo $_POST es llenado usando el atributo name del input del formulario, así que este valor debe ser igual que el que coloques al validar.

El formulario queda así:

Para procesarlo y validarlo se usa esto:

Fíjate en todas las reglas de validación que se agregan; en este caso es una a una, pero como te dije, podrías invocar a rules pasándole un arreglo con las reglas.

Dentro del ejemplo también se muestra cómo recorrer el arreglo de errores.

Ahora veamos la demostración:

Validar datos con PHP y Valitron

Conclusión

Valitron también ofrece la posibilidad de agregar validaciones personalizadas, así que es totalmente extensible y si las reglas que tiene no son suficientes para nosotros, podemos crear más.

No olvides que no solo podemos validar formularios, también se pueden validar otros arreglos, por ejemplo, puedes validar tu API usando esta librería y JSON.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *