PHPValidator adalah pustaka PHP modern untuk validasi data dalam aplikasi PHP Anda. Ini memberikan cara yang fleksibel dan dapat diperluas untuk memvalidasi data menggunakan aturan yang telah ditentukan atau dengan membuat aturan validasi khusus.
Gunakan komposer untuk menginstal 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 ();
} Anda juga dapat menyesuaikan pesan kesalahan validasi atau 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 hadir dengan serangkaian aturan validasi yang telah ditentukan seperti yang diperlukan, string, email, maxlength dll.
Custom Rules : Mudah membuat aturan validasi khusus dengan mengimplementasikan antarmuka Rule .
Multilingual Support : Kustomisasi pesan kesalahan validasi berdasarkan bahasa aplikasi menggunakan LangManager .
PHPValidator menyediakan berbagai aturan yang telah ditentukan yang dapat Anda gunakan untuk validasi data. Berikut adalah daftar beberapa aturan yang umum digunakan bersama dengan contoh penggunaannya:
Aturan yang diperlukan
' username ' => ' required 'Aturan string
' username ' => ' string 'Aturan email
' email ' => ' email 'Aturan panjang maksimal
' username ' => ' max:25 'Aturan yang dikonfirmasi
' password_confirmation ' => ' confirmed:password 'Aturan file
' file ' => ' file 'Aturan yang diterima
"yes" , "on" , "1" , atau true . Berguna untuk kotak centang. ' terms_and_conditions ' => ' accepted 'Diterima jika aturan
' terms_and_conditions ' => ' accepted_if:is_adult,true 'Aturan ActiveUrl
' website ' => ' active_url 'Aturan Alpha
' name ' => ' alpha 'Aturan numerik
' age ' => ' numeric 'Aturan kecil
' username ' => ' lowercase 'Aturan huruf besar
' username ' => ' uppercase 'Dalam aturan
' role ' => ' in:admin,editor,viewer 'Aturan yang dapat dibatalkan
null atau kosong. ' optional_field ' => ' nullable 'Aturan Kata Sandi
secure password . ' password ' => ' password 'Aturan yang sama
' password_confirmation ' => ' same:password 'Aturan panjang maksimal
' username ' => ' min:8 'Tidak dalam aturan
' value ' => ' not_in:foo,bar 'Diperlukan dengan aturan
' firstname ' => ' required_with:lastname ' ,Aturan IP yang valid
' client_ip ' => ' ip ' ,Aturan json
' config ' => ' json ' ,Aturan URL
' website ' => ' url ' ,Aturan Numerik Alpha
' pseudo ' => ' alpha_num ' ,Aturan boolean
' is_admin ' => ' bool ' ,Aturan ukuran
[
' string ' => ' size:7 ' , // strlen(string) == 7
' integer ' => ' size:7 ' , // integer == 7
' array ' => ' size:7 ' , // count(array) == 7
' file ' => ' size:512 ' , // file size (kb) == 512
]Tidak diperlukan dengan aturan
' email ' => ' not_required_with:phone_number ' , Selain aturan yang telah ditentukan, Anda dapat membuat aturan validasi khusus dengan mengimplementasikan antarmuka Rule . Berikut adalah contoh cara membuat dan menggunakan aturan khusus:
// 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 " ;
}
}Gunakan kelas khusus Anda secara langsung
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 ();
}Tambahkan kelas khusus Anda ke daftar aturan dan gunakan seolah -olah itu asli
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 ();
}Dalam contoh ini, kami membuat CustomPasswordRule yang memeriksa apakah kata sandi sama dengan konfirmasi_password. Anda dapat menyesuaikan metode operan untuk mengimplementasikan logika validasi spesifik Anda.
Jika Anda ingin berkontribusi pada PHPValidator, silakan ikuti pedoman kontribusi kami.
Untuk dukungan, Anda dapat menghubungi saya melalui email di [email protected]. Jangan ragu untuk menghubungi saya jika Anda memiliki pertanyaan atau memerlukan bantuan dengan PhpValidator.
PHPValidator adalah perangkat lunak open-source yang dilisensikan di bawah lisensi MIT.