O PhpValidator é uma biblioteca PHP moderna para validação de dados em seus aplicativos PHP. Ele fornece uma maneira flexível e extensível de validar dados usando regras predefinidas ou criando regras de validação personalizadas.
Use compositor para instalar o phpValidator:
composer require blakvghost/php-validator use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
try {
$ data = [
' username ' => ' BlakvGhost ' ,
' email ' => ' [email protected] ' ,
' score ' => 42 ,
];
// or
// $data = $_POST;
$ validator = new Validator ( $ data , [
' username ' => ' required|string ' ,
' email ' => ' required|email ' ,
' score ' => [ ' required ' , ' max:200 ' , new CustomRule ()],
' password ' => new CustomRule (),
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
} Você também pode personalizar as mensagens de erro de validação ou specify the default language
$ data = [
' username ' => ' BlakvGhost ' ,
];
$ validator = new Validator (
$ data ,
[
' username ' => ' required|string ' ,
],
[
' username ' => [
' required ' => ' Votre nom d ' utilisateur doit être présent ' ,
' string ' => ' Votre nom d ' utilisateur doit forcément être une chaîne de caractère ' ,
],
]
);
// For the default language
$ validator = new Validator ( $ data , $ rules , lang: ' fr ' ); Predefined Rules : o PhpValidator vem com um conjunto de regras de validação predefinidas, como exigidas, string, email, maxlength etc.
Custom Rules : Crie facilmente regras de validação personalizadas implementando a interface Rule .
Multilingual Support : personalize mensagens de erro de validação com base no idioma do aplicativo usando o LangManager .
O PhpValidator fornece uma variedade de regras predefinidas que você pode usar para validação de dados. Aqui está uma lista de algumas regras comumente usadas, juntamente com exemplos de uso:
Regra necessária
' username ' => ' required 'Regra de string
' username ' => ' string 'Regra de e -mail
' email ' => ' email 'Regra máxima de comprimento
' username ' => ' max:25 'Regra confirmada
' password_confirmation ' => ' confirmed:password 'Regra de arquivo
' file ' => ' file 'Regra aceita
"yes" , "on" , "1" ou true . Útil para caixas de seleção. ' terms_and_conditions ' => ' accepted 'Aceito se regra
' terms_and_conditions ' => ' accepted_if:is_adult,true 'Regra ActiveUrl
' website ' => ' active_url 'Regra alfa
' name ' => ' alpha 'Regra numérica
' age ' => ' numeric 'Regra minúscula
' username ' => ' lowercase 'Regra em maiúsculas
' username ' => ' uppercase 'Em regra
' role ' => ' in:admin,editor,viewer 'Regra anulável
null ou vazio. ' optional_field ' => ' nullable 'Regra de senha
secure password . ' password ' => ' password 'Mesma regra
' password_confirmation ' => ' same:password 'Regra máxima de comprimento
' username ' => ' min:8 'Não em regra
' value ' => ' not_in:foo,bar 'Exigido com regra
' firstname ' => ' required_with:lastname ' ,Regra IP válida
' client_ip ' => ' ip ' ,Regra JSON
' config ' => ' json ' ,Regra da URL
' website ' => ' url ' ,Regra numérica alfa
' pseudo ' => ' alpha_num ' ,Regra booleana
' is_admin ' => ' bool ' ,Regra de tamanho
[
' string ' => ' size:7 ' , // strlen(string) == 7
' integer ' => ' size:7 ' , // integer == 7
' array ' => ' size:7 ' , // count(array) == 7
' file ' => ' size:512 ' , // file size (kb) == 512
]Não é necessário com a regra
' email ' => ' not_required_with:phone_number ' , Além das regras predefinidas, você pode criar regras de validação personalizadas implementando a interface Rule . Aqui está um exemplo de como criar e usar uma regra personalizada:
// CustomPasswordRule.php
namespace YourNameSpace Rules ;
use BlakvGhost PHPValidator Contracts Rule ;
class CustomPasswordRule implements Rule
{
protected $ field ;
public function __construct ( protected array $ parameters = [])
{
}
public function passes ( string $ field , $ value , array $ data ): bool
{
$ this -> field = $ field ;
// Implement your custom validation logic here
// Example: Check if the password is equal to confirm_password
return $ value === $ data [ ' confirm_password ' ];
}
public function message (): string
{
return " Vos deux mot de passes ne sont pas identiques " ;
}
}Use sua aula personalizada diretamente
use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
use YourNameSpace CustomPasswordRule ;
// ...
try {
$ data = [
' password ' => ' 42 ' ,
' confirm_password ' => ' 142 ' ,
];
// or
// $data = $_POST;
$ validator = new Validator ( $ data , [
' password ' => [ ' required ' , new CustomPasswordRule ()],
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
}Adicione sua classe personalizada à lista de regras e use -a como se fosse nativa
use BlakvGhost PHPValidator Validator ;
use BlakvGhost PHPValidator ValidatorException ;
use BlakvGhost PHPValidator Mapping RulesMaped ;
use YourNameSpace CustomPasswordRule ;
// Add your rule here using an alias and the full namespace of your custom class
RulesMaped:: addRule ( ' c_password ' , CustomPasswordRule::class);
try {
$ data = [
' password ' => ' 42 ' ,
' confirm_password ' => ' 142 ' ,
];
$ validator = new Validator ( $ data , [
' password ' => ' required|c_password ' ,
]);
if ( $ validator -> isValid ()) {
echo " Validation passed! " ;
} else {
$ errors = $ validator -> getErrors ();
print_r ( $ errors );
}
} catch ( ValidatorException $ e ) {
echo " Validation error: " . $ e -> getMessage ();
}Neste exemplo, criamos um CustomPasswordRule que verifica se a senha é igual para confirmar_password. Você pode personalizar o método PASSE para implementar sua lógica de validação específica.
Se você deseja contribuir com o PhpValidator, siga nossas diretrizes de contribuição.
Para apoio, você pode entrar em contato comigo por e-mail em [email protected]. Sinta -se à vontade para entrar em contato comigo se tiver alguma dúvida ou precisar de assistência com o PhpValidator.
O PhpValidator é um software de código aberto licenciado sob a licença do MIT.