انتقل إلى محتوى الدرس
الدرس 20
دورة إطار العمل Laravel

استقبال وفحص بيانات طلبات HTTP الواردة في LaravelInspecting Incoming HTTP Requests in Laravel

استخدام كائن Request لقراءة مدخلات المستخدم ومعاملات الرابط ورؤوس الرسالة وطريقة الطلب بأمان وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

يغلف إطار Laravel كل طلب HTTP وارد بما يحويه من معاملات استعلام وحقول نماذج وبيانات JSON ورؤوس الرسالة داخل كائن موحد من كلاس Illuminate\Http\Request. وبمجرد كتابة التلميح النوعي Request $request في دالة المتحكم، يقوم حاوي الخدمات بحقن الطلب الحالي تلقائياً.

  • الحقن التلقائي للطلب (Request Injection): يحقن حاوي الخدمات كائن الطلب تلقائياً عند إضافة التلميح النوعي للدالة.
  • التوافق مع معاملات المسار (Route Params): يُكتب كائن الطلب في بداية معاملات الدالة متبوعاً بمعاملات الرابط.
  • واجهة كائنية موحدة (Unified API): يغنيك الكائن تماماً عن التعامل المباشر مع مصفوفات PHP العامة مثل $_GET و$_POST.
مخطط معماري يوضح استقبال وفحص بيانات طلبات HTTP الواردة في Laravel في إطار العمل Laravel 12
PHP
<?php
use Illuminate\Http\Request;

public function index(Request $request)
{
    $term = $request->input('q');
    return view('search.results', compact('term'));
}

يحتاج المتحكم أحياناً لفحص مسار الرابط الحالي أو العنوان الكامل أو طريقة الإرسال قبل معالجة البيانات. توفر دوال مثل path وurl وfullUrl وis وisMethod فحصاً دقيقاً لمعلومات الرابط وطريقة HTTP المستخدمة.

  • قراءة المسار والرابط (path / fullUrl): تُرجع path المسار النسبي بينما تُعيد fullUrl الرابط الكامل مع معاملات الاستعلام.
  • مطابقة النمط ($request->is): تختبر ما إذا كان مسار الطلب يطابق نمطاً معيناً باستخدام النجمة.
  • فحص طريقة الإرسال (method / isMethod): تتحقق من طريقة الطلب الفعلية مثل GET أو POST بأمان.
PHP
<?php
use Illuminate\Http\Request;

$path = $request->path();
$full = $request->fullUrl();
if ($request->is('v1/*') && $request->isMethod('GET')) {
    // Handle API v1 GET request
}

تقرأ دالة $request->input قيم المدخلات سواء أُرسلت من نموذج HTML أو رابط الاستعلام أو جسم JSON، وتقبل قيمة افتراضية آمنة كمعامل ثانٍ. وإذا أردت حصر القراءة في معاملات الرابط فقط، فاستخدم دالة $request->query المخصصة.

  • قراءة المدخلات الشاملة (input Method): تجلب قيمة الحقل مع إمكانية تحديد قيمة افتراضية عند غيابه.
  • الصيغة النقطية للمصفوفات (Dot Access): تصل للحقول المتداخلة في المصفوفات أو JSON مثل user.name بسهولة.
  • معاملات الرابط فقط (query Method): تقرأ القيم الممررة في عنوان URL فقط وتتجاهل جسم الطلب.
PHP
<?php
use Illuminate\Http\Request;

$keyword = $request->input('q', '');
$city    = $request->input('shipping.city', 'Riyadh');
$sortBy  = $request->query('sort', 'newest');
$allData = $request->all();

تصل مدخلات HTTP الخام دائماً كنصوص، مما قد يسبب أخطاء عند التعامل مع مربعات الاختيار المنطقية أو الأرقام. لذلك يوفر Laravel دوال تحويل النوع المدمجة مثل string وinteger وboolean، بالإضافة لدالتي التصفية only وexcept.

  • التحويل المنطقي الذكي (boolean Method): يحول قيم مربعات الاختيار مثل on و1 وtrue إلى قيمة منطقية حقيقية.
  • التحويل الرقمي والنصي (integer / string): يضمن الحصول على عدد صحيح أو كائن نصي قابل للتنظيف مباشرة.
  • تصفية الحقول المسموحة (only / except): تستخرج الحقول المطلوبة فقط بدلاً من جلب كافة المدخلات عشوائياً.
PHP
<?php
use Illuminate\Http\Request;

$perPage  = $request->integer('limit', 20);
$remember = $request->boolean('remember_me');
$safeData = $request->only(['title', 'category']);

يمنع التمييز بين دالتي has وfilled الوقوع في أخطاء الحقول الفارغة عند بناء فلاتر البحث. كما يمكنك قراءة رؤوس الرسالة عبر دالة header، واستخراج رمز المصادقة عبر bearerToken، ومعرفة عنوان العميل عبر دالة ip.

  • الوجود مقابل الامتلاء (has vs filled): تتحقق has من وجود المفتاح حتى لو كان فارغاً، بينما تشترط filled وجود قيمة غير فارغة.
  • قراءة رؤوس الرسالة (header Method): تقرأ أي رأس مرفق مع الطلب مع دعم تمرير قيمة افتراضية.
  • رمز المصادقة والعنوان (bearerToken / ip): تستخرج رمز Bearer من رأس التفويض وعنوان IP للعميل مباشرة.
PHP
<?php
if ($request->filled('coupon')) {
    $code = $request->string('coupon')->trim();
}
$locale = $request->header('Accept-Language', 'ar');
$token  = $request->bearerToken();
$userIp = $request->ip();

يساعد استخدام دوال الطلب المحددة النوع والمصفاة على تحصين المتحكمات ضد المدخلات غير المتوقعة أو الناقصة. راجع الجدول المرجعي التالي لاختيار الدالة الدقيقة لفحص وقراءة بيانات الطلب.

وجه المقارنة الهندسيالأسلوب اليدوي أو غير المحميمعيار Laravel 12 الحديث
جلب قيم المدخلاتالقراءة المباشرة من $_POST التي تسبب أخطاء عند غياب المفتاحاستخدام دالة $request->input الآمنة مع القيم الافتراضية
قيم مربعات الاختياركتابة مقارنات نصية متعددة لفحص قيم on و1 وtrueاستدعاء الدالة المدمجة $request->boolean مباشرة
حقول البحث الفارغةالفحص بدالة isset التي تعتبر النص الفارغ قيمة موجودةاستخدام دالة $request->filled للتأكد من امتلاء الحقل
قراءة رؤوس الطلبتقطيع متغيرات $_SERVER يدوياً لاستخراج رمز التفويضاستخدام دوال $request->header و$request->bearerToken الجاهزة
PHP
<?php
use Illuminate\Http\Request;

$filters = $request->only(['status', 'role']);
$isActive = $request->boolean('active');
$page = $request->integer('page', 1);
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «استقبال وفحص بيانات طلبات HTTP الواردة في Laravel» مفاهيم حقن كائن الطلب داخل المتحكمات، وفحص مسار الرابط وطريقة الطلب، وقراءة المدخلات ومعاملات الاستعلام وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «إنشاء وتسجيل البرمجيات الوسيطة Middleware في Laravel» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Incoming Requests بيانات الطلب
استخدام كائن Request لقراءة مدخلات المستخدم ومعاملات الرابط ورؤوس الرسالة وطريقة الطلب بأمان وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
للمراجعة
02 Injecting HTTP Request in Controllers حقن كائن الطلب داخل المتحكمات
المفهوم الهندسي والتطبيق العملي المباشر لقسم حقن كائن الطلب داخل المتحكمات في إطار العمل Laravel 12.
للمراجعة
03 Inspecting Request Path and Method فحص مسار الرابط وطريقة الطلب
المفهوم الهندسي والتطبيق العملي المباشر لقسم فحص مسار الرابط وطريقة الطلب في إطار العمل Laravel 12.
للمراجعة
04 Reading Input and Query Parameters قراءة المدخلات ومعاملات الاستعلام
المفهوم الهندسي والتطبيق العملي المباشر لقسم قراءة المدخلات ومعاملات الاستعلام في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «حقن كائن الطلب داخل المتحكمات» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «فحص مسار الرابط وطريقة الطلب» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من حقن كائن الطلب داخل المتحكمات في إطار العمل Laravel 12؟

يسهم حقن كائن الطلب داخل المتحكمات في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «فحص مسار الرابط وطريقة الطلب» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة قراءة المدخلات ومعاملات الاستعلام بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة قراءة المدخلات ومعاملات الاستعلام.

04

لماذا يُعد تطبيق جلب المدخلات المحددة النوع وتصفيتها مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق فحص وجود الحقول ورؤوس الطلب في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مرجع دوال فحص بيانات الطلب؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.