التحقق من صحة البيانات في PHP باستخدام مكتبة Respect\\Validation

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو 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 الضخمة وتبسط عملية الاختبار.

توصيات