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 مع مجموعة من قواعد التحقق من الصحة المحددة مسبقًا مثل المطلوبة ، والسلسلة ، والبريد الإلكتروني ، و MaxLength ، إلخ.
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 يتحقق مما إذا كانت كلمة المرور مساوية لـ Config_password. يمكنك تخصيص طريقة المرور لتنفيذ منطق التحقق من الصحة المحدد.
إذا كنت ترغب في المساهمة في phpvalidator ، فيرجى اتباع إرشادات المساهمة الخاصة بنا.
للحصول على الدعم ، يمكنك التواصل معي عبر البريد الإلكتروني على [email protected]. لا تتردد في الاتصال بي إذا كان لديك أي أسئلة أو تحتاج إلى مساعدة مع Phpvalidator.
Phpvalidator هو برنامج مفتوح المصدر مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.