ما هو Respect\\Validation؟
Respect\\Validation هي مكتبة قوية ومعبرة للتحقق من صحة البيانات في PHP. تتيح لك بناء قواعد تحقق معقدة باستخدام سلاسل من الدوال، مما يجعل الكود نظيفًا وسهل القراءة. تدعم المكتبة أكثر من 60 قاعدة مدمجة (من التحقق من البريد الإلكتروني إلى التحقق من CPF/CNPJ) ويمكن توسيعها بسهولة بقواعد مخصصة.
لماذا نحتاج إلى التحقق من صحة البيانات؟
التحقق من صحة البيانات هو مرحلة حاسمة في معالجة إدخال المستخدم، أو طلبات API، أو البيانات من المصادر الخارجية. بدونها، يكون التطبيق عرضة لـ:
- هجمات SQL injection و XSS
- بيانات غير صحيحة تسبب أخطاء
- انتهاك منطق الأعمال
تحل Respect\\Validation هذه المشكلات من خلال توفير واجهة موحدة للتصفية والتحقق.
التثبيت
قم بتثبيت المكتبة عبر Composer:
composer require respect/validationبعد التثبيت، قم بتضمين أداة التحميل التلقائي واستخدم مساحة الاسم:
require 'vendor/autoload.php';use Respect\\Validation\\Validator as v;الوظائف الأساسية
تقدم المكتبة:
- سلاسل القواعد:
v::alnum()->noWhitespace()->length(5, 20)->validate($input) - رسائل خطأ مخصصة:
v::email()->setName('Email')->assert($input) - التحقق الجماعي:
v::attribute('name', v::stringType())->attribute('age', v::intVal()) - حقول اختيارية وقواعد شرطية (مثل التحقق فقط إذا كان الحقل موجودًا).
مثال كود PHP
التحقق البسيط من نموذج تسجيل:
<?phprequire 'vendor/autoload.php';use Respect\\Validation\\Validator as v;
$data = [ 'username' => 'john_doe', 'email' => 'john@example.com', 'password' => 'secret123', 'age' => 25];
$usernameValidator = v::alnum()->noWhitespace()->length(4, 20);$emailValidator = v::email();$passwordValidator = v::length(8, 64);$ageValidator = v::intVal()->between(18, 120);
try { $usernameValidator->setName('Username')->assert($data['username']); $emailValidator->setName('Email')->assert($data['email']); $passwordValidator->setName('Password')->assert($data['password']); $ageValidator->setName('Age')->assert($data['age']); echo 'جميع البيانات صالحة!';} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { echo implode('<br>', $e->getMessages());}النتيجة عند وجود خطأ: "Username must contain only letters and digits" وهكذا.
متى تستخدم
- النماذج على المواقع — التسجيل، التواصل، الطلب
- REST API — التحقق من طلبات JSON قبل المعالجة
- استيراد البيانات — التحقق من CSV/Excel قبل الكتابة في قاعدة البيانات
- النصوص البرمجية للأوامر — التحقق من وسائط CLI
تناسب Respect\\Validation المشاريع من أي حجم — من المواقع البسيطة إلى الأطر (Laravel, Symfony). تحل محل تركيبات if-else الضخمة وتبسط عملية الاختبار.