Phpvalidator - это современная библиотека PHP для проверки данных в ваших приложениях PHP. Он обеспечивает гибкий и расширяемый способ проверки данных, используя предопределенные правила или путем создания пользовательских правил проверки.
Используйте композитор для установки 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 ();
} Вы также можете настроить сообщения об ошибках проверки или 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 : Phpvalidator поставляется с набором предопределенных правил проверки, таких как необходимость, строка, электронная почта, максимальная длину и т. Д.
Custom Rules : легко создавать пользовательские правила проверки путем реализации интерфейса Rule .
Multilingual Support : настроить сообщения об ошибках проверки на основе языка приложения с помощью LangManager .
Phpvalidator предоставляет множество предопределенных правил, которые вы можете использовать для проверки данных. Вот список некоторых часто используемых правил, а также примеры их использования:
Требуемое правило
' username ' => ' required 'Строковое правило
' username ' => ' string 'Правило электронной почты
' email ' => ' email 'Правило максимальной длины
' username ' => ' max:25 'Подтвержденное правило
' password_confirmation ' => ' confirmed:password 'Файл Правило
' file ' => ' file 'Принятое правило
"yes" , "on" , "1" или true . Полезно для флажок. ' terms_and_conditions ' => ' accepted 'Принято, если правило
' terms_and_conditions ' => ' accepted_if:is_adult,true 'Активное правило
' website ' => ' active_url 'Альфа -правило
' name ' => ' alpha 'Числовое правило
' age ' => ' numeric 'Строчное правило
' username ' => ' lowercase 'Правило прописного
' username ' => ' uppercase 'В правиле
' role ' => ' in:admin,editor,viewer 'Нулевое правило
null или пустым. ' optional_field ' => ' nullable 'Правило пароля
secure password . ' password ' => ' password 'То же правило
' password_confirmation ' => ' same:password 'Правило максимальной длины
' username ' => ' min:8 'Не в правиле
' value ' => ' not_in:foo,bar 'Требуется с правилом
' firstname ' => ' required_with:lastname ' ,Допустимое правило IP
' client_ip ' => ' ip ' ,Правило JSON
' config ' => ' json ' ,Правило URL
' website ' => ' url ' ,Альфа -числовое правило
' pseudo ' => ' alpha_num ' ,Логическое правило
' is_admin ' => ' bool ' ,Правило размера
[
' string ' => ' size:7 ' , // strlen(string) == 7
' integer ' => ' size:7 ' , // integer == 7
' array ' => ' size:7 ' , // count(array) == 7
' file ' => ' size:512 ' , // file size (kb) == 512
]Не требуется с правилом
' email ' => ' not_required_with:phone_number ' , В дополнение к предопределенным правилам вы можете создавать пользовательские правила проверки, внедрив интерфейс Rule . Вот пример того, как создать и использовать пользовательское правило:
// 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 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 ();
}Добавьте свой собственный класс в список правил и используйте его, как если бы он был нативным
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 ();
}В этом примере мы создали CustomPassWordRule, который проверяет, равен ли пароль conform_password. Вы можете настроить метод Passes для реализации вашей конкретной логики проверки.
Если вы хотите внести свой вклад в Phpvalidator, пожалуйста, следуйте нашим руководящим принципам взноса.
Для поддержки вы можете обратиться ко мне по электронной почте по адресу dev@username blakvghost.com. Не стесняйтесь обращаться ко мне, если у вас есть какие -либо вопросы или вам нужна помощь с Phpvalidator.
Phpvalidator-это программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.