PHPValidator เป็นไลบรารี PHP ที่ทันสมัยสำหรับการตรวจสอบข้อมูลในแอปพลิเคชัน PHP ของคุณ มันมีวิธีที่ยืดหยุ่นและยืดหยุ่นในการตรวจสอบข้อมูลโดยใช้กฎที่กำหนดไว้ล่วงหน้าหรือโดยการสร้างกฎการตรวจสอบความถูกต้องที่กำหนดเอง
ใช้ Composer เพื่อติดตั้ง 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 'กฎ activeUrl
' 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 ที่ตรวจสอบว่ารหัสผ่านมีค่าเท่ากับยืนยัน _Password คุณสามารถปรับแต่งวิธีการส่งผ่านเพื่อใช้ตรรกะการตรวจสอบความถูกต้องเฉพาะของคุณ
หากคุณต้องการมีส่วนร่วมใน PHPValidator โปรดปฏิบัติตามแนวทางการบริจาคของเรา
สำหรับการสนับสนุนคุณสามารถติดต่อฉันทางอีเมลได้ที่ [email protected] อย่าลังเลที่จะติดต่อฉันหากคุณมีคำถามหรือต้องการความช่วยเหลือกับ phpvalidator
PHPValidator เป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT