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

استجابات HTTP وإعادة التوجيه والكوكيز في LaravelHTTP Responses JSON Redirects and Cookies in Laravel

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

رغم أن المتحكمات يمكنها إرجاع نصوص أو مصفوفات مباشرة، فإن استخدام الدالة المساعدة response يمنحك تحكماً كاملاً في كود حالة HTTP ورؤوس الرسالة الصادرة. يمكنك تسلسل دالة header لإضافة رأس مفرد أو دالة withHeaders لإرفاق مصفوفة رؤوس دفعة واحدة.

  • تخصيص كود الحالة (Status Code): مرر رقم الحالة القياسي مثل 201 للإنشاء الناجح كمعامل ثانٍ لدالة الاستجابة.
  • إضافة رأس مفرد (->header): يضبط قيمة رأس محدد في الرسالة الصادرة نحو المتصفح.
  • مصفوفة رؤوس متعددة (->withHeaders): يرفق عدة رؤوس استجابة دفعة واحدة بصيغة مصفوفة ترابطية منظمة.
مخطط معماري يوضح استجابات HTTP وإعادة التوجيه والكوكيز في Laravel في إطار العمل Laravel 12
PHP
<?php
Route::get('/health', function () {
    return response('Service Operational', 200)
        ->withHeaders([
            'Content-Type' => 'text/plain',
            'X-Region' => 'me-central-1',
        ]);
});

للبينات المهيكلة وطلبات AJAX وواجهات البرمجة، تحول دالة response->json المصفوفات والكائنات إلى نص JSON قياسي وتضبط رأس Content-Type تلقائياً إلى application/json. كما تتيح لك تمرير كود الحالة المناسب مثل 201 عند الإنشاء أو 400 عند الخطأ.

  • الترميز وضبط الرأس تلقائياً (response->json): تحول البيانات لصيغة JSON وتضبط رأس نوع المحتوى القياسي.
  • تحديد كود الحالة (HTTP Status): يقبل المعامل الثاني أكواد النجاح أو الفشل مثل 201 أو 422.
  • توحيد هيكل الردود (Structured Payload): تضمن استلام الواجهة الأمامية لكائنات JSON متسقة وسهلة القراءة.
PHP
<?php
Route::post('/api/coupons/check', function () {
    return response()->json([
        'valid' => true,
        'discount_percent' => 20,
    ], 200);
});

بعد إتمام معالجة الطلب في تطبيقات الويب، غالباً ما يعيد المتحكم توجيه المتصفح إلى مسار مسمى عبر redirect->route أو الدالة المختصرة to_route. ولإعادة المستخدم مباشرة إلى الصفحة السابقة التي أتى منها، نستخدم الدالة المساعدة back.

  • التحويل المختصر للمسار (to_route Helper): يوجه المتصفح لمسار مسمى مع تمرير معاملات الرابط في سطر واحد.
  • العودة للصفحة السابقة (back Helper): يعيد الزائر للصفحة التي أرسل منها الطلب بالاعتماد على رأس المرجع.
  • الروابط الخارجية (redirect->away): يستخدم عند الحاجة لتحويل المستخدم إلى موقع خارجي بأمان.
PHP
<?php
class CheckoutController extends Controller
{
    public function complete()
    {
        return to_route('orders.show', ['id' => 1042]);
    }
}

يُشفر إطار Laravel ويوقع جميع ملفات تعريف الارتباط Cookies تلقائياً باستخدام مفتاح التطبيق APP_KEY بحيث لا يمكن للمتصفح التلاعب بقيمها. يمكنك إرفاق الكوكي مع الاستجابة عبر دالة cookie أو جدولته مسبقاً عبر الواجهة Cookie::queue ليُرسل تلقائياً.

  • التشفير التلقائي الكامل (Encrypted Cookies): تشفر برمجية EncryptCookies الوسيطة جميع الكوكيز الصادرة وتفك تشفير الواردة.
  • الإرفاق المباشر (->cookie): يحدد اسم الكوكي وقيمته ومدة صلاحيته بالدقائق مباشرة على الاستجابة.
  • الجدولة والحذف (Cookie::queue / expire): يتيح جدولة إرسال الكوكي أو إنهاء صلاحيته وحذفه من المتصفح.
PHP
<?php
use Illuminate\Support\Facades\Cookie;

Cookie::queue('currency', 'SAR', 60 * 24 * 30);

return response('Preferences Saved')
    ->cookie('sidebar_state', 'collapsed', 1440);

عند إرجاع ملفات للمستخدم، تضبط دالة response->download رأس الاستجابة لإجبار المتصفح على تنزيل الملف وحفظه باسم مخصص. وفي المقابل، تعرض دالة response->file الملفات مثل مستندات PDF أو الصور مباشرة داخل نافذة المتصفح دون تنزيل إجباري.

  • التنزيل المباشر (response->download): يجبر المتصفح على حفظ الملف على جهاز المستخدم بالاسم المحدد.
  • الحذف التلقائي بعد الإرسال (deleteFileAfterSend): يحذف الملفات المؤقتة من الخادم فور اكتمال تنزيلها.
  • المعاينة داخل المتصفح (response->file): يعرض ملفات PDF والصور مباشرة داخل تبويب المتصفح.
PHP
<?php
public function downloadPdf()
{
    $path = storage_path('app/invoices/inv-1042.pdf');
    return response()->download($path, 'Invoice.pdf');
}

يضمن اختيار دالة الاستجابة الصحيحة إرسال أكواد حالة HTTP دقيقة وكوكيز مشفرة وتحويلات سليمة للمتصفح. استعن بالجدول المرجعي التالي لاختيار باني الاستجابة القياسي لكل حالة في متحكماتك.

وجه المقارنة الهندسيالأسلوب اليدوي أو غير المحميمعيار Laravel 12 الحديث
إرجاع بيانات JSONضبط الرؤوس يدوياً واستدعاء json_encode في كل دالةاستخدام باني الاستجابة القياسي response->json($data, 201)
إعادة توجيه المتصفحكتابة رأس Location يدوياً مع المسار النصي وإيقاف التنفيذاستخدام دوال التحويل الآمنة للمسارات المسماة to_route وback
ملفات الكوكيزإرسال كوكيز نصية مكشوفة عبر setcookie يسهل تعديلها بالمتصفحتشفير وتوقيع الكوكيز تلقائياً عبر Cookie::queue و->cookie
تنزيل الملفاتقراءة الملف يدوياً وكتابة رؤوس التنزيل المعقدة في كل مرةالبث الآمن والمباشر للملفات عبر دالة response->download
PHP
<?php
use Illuminate\Support\Facades\Cookie;

Cookie::expire('legacy_cart_id');
return to_route('catalog.index');
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

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

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

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

مشاركة

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

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

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

المصطلحات4

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 HTTP Responses استجابات HTTP
إرجاع استجابات HTTP المخصصة وبيانات JSON ورؤوس الرسالة والكوكيز المشفرة والتحويلات المباشرة وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
للمراجعة
02 Creating Responses and Custom Headers بناء الاستجابات وتخصيص رؤوس HTTP
المفهوم الهندسي والتطبيق العملي المباشر لقسم بناء الاستجابات وتخصيص رؤوس HTTP في إطار العمل Laravel 12.
للمراجعة
03 Returning Structured JSON Responses إرجاع استجابات JSON المهيكلة
المفهوم الهندسي والتطبيق العملي المباشر لقسم إرجاع استجابات JSON المهيكلة في إطار العمل Laravel 12.
للمراجعة
04 Redirecting to Named Routes Cleanly تحويل الزائر للمسارات بدالة to_route
المفهوم الهندسي والتطبيق العملي المباشر لقسم تحويل الزائر للمسارات بدالة to_route في إطار العمل 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. اكتب ونفّذ المثال البرمجي المشروح في قسم «بناء الاستجابات وتخصيص رؤوس HTTP» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

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

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

مساحة التحدي

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

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

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

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

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

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

ما الهدف الهندسي الأساسي من بناء الاستجابات وتخصيص رؤوس HTTP في إطار العمل Laravel 12؟

يسهم بناء الاستجابات وتخصيص رؤوس HTTP في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

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

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

03

أي آلية في Laravel 12 تتولى إدارة تحويل الزائر للمسارات بدالة to_route بشكل مباشر ومنظم؟

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

04

لماذا يُعد تطبيق إرفاق الكوكيز المشفرة مع الاستجابة مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

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

05

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

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

06

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

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

07

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

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

08

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

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