yuri-oliveira/validate

Pacote para fazer validação

v1.0.8 2023-04-13 00:47 UTC

This package is auto-updated.

Last update: 2025-04-13 05:08:46 UTC


README

Esse projeto é um componente PHP para fazer a valição.

Instalação

composer require yuri-oliveira/validate

Como usar

Validando

<?php

use YuriOliveira\Validate\Validate;

require_once(__DIR__ . '/vendor/autoload.php');

$data = [
    'name' => 'Anthony Edward Stark Jr',
    'email' => 'TonyEsterco@hotmail.com',
    'password' => '',
];

$validate = Validate::create($data);

$validate->validate([
    'name' => ['max:250', 'required'],
    'email' => ['email', 'required'],
    'password' => ['min:8', 'max:100', 'required']
]);


print_r($validate->errors());

// Retorno de erros
// [
//     'password' => 'O campo password deve conter no mínimo 8 caracteres.'
// ];

Condições para validar

Tudo o que vier depois da condição só será validado se a condição for atendida.

$validate->validate([
    'email' => ['condition:filled', 'email']
    'password' => ['condition:empty', 'required']
]);

Criando condições personalizadas.

Obs: A condição deve sempre retornar um boolean. Se retornar true significar que as validações devem continuar, caso retorne false as validações serão interrompidas.

<?php

use YuriOliveira\Validate\Condition;

require_once(__DIR__ . '/vendor/autoload.php');

Condition::extend('custom', function($value, $key) {
    return is_string($value) ? true : false;
});

Mensagens de erro

O arquivo contendo as mensagens é um array associativo onde a chave é o erro e o valor é a mensagem. Alguns erros irão precisar de filtros para tipos de dados (string, numeric, file e array). Abaixo contém uma parte do arquivo de mensagens de erro.

return [
    'required' => 'O campo :attribute é obrigatório.',
    'email' => 'O campo :attribute deve conter um email válido.',
    'max' => [
        'string' => 'O campo :attribute deve conter no máximo :max caracteres.',
        'file' => 'O arquivo :attribute deve ter o tamanho máximo de :max.'
    ]
];

Também podemos inserir mais mensagens de erro personalizadas utilizando o método "extend" da class "Message".

<?php

use YuriOliveira\Validate\Message\Message;

require_once(__DIR__ . '/vendor/autoload.php');

$customMessages = [
    'custom' => 'O campo :attribute é customizado'
];

Message::extend($customMessages);

Para obter as mensagens utilizamos o método "get".

Mensagens simples:

Message::get('required', 'email');
// resultado: O campo email é obrigatório.

Mensagens que possuem tipos e um parâmetro:

Message::get('max.string', 'password', 25);
// resultado: O campo password deve conter no máximo 25 caracteres.

Validações personalizadas

Em caso de erro a validação deve rotornar uma mensagem (podemos obter pela classe Message e utilizar a mensagem criada no exemplo anterior) em caso de aprovação deve retornar "true".

Validate::extend('custom', function($key, $value) {

    if (!is_string($value)) {

        return Message::get('custom', $key);
    }

    return true;
});

Requisitos

  • PHP 7.4 ou superior