"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إتقان البرامج الوسيطة في Laravel: دليل متعمق

إتقان البرامج الوسيطة في Laravel: دليل متعمق

تم النشر بتاريخ 2024-07-31
تصفح:875

Mastering Middleware in Laravel: An In-Depth Guide

بينما كنت أتنقل في متاهة تطوير الويب، كانت إحدى الميزات تضيء طريقي باستمرار: نظام البرمجيات الوسيطة Laravel. لا تقوم البرامج الوسيطة بتصفية الطلبات فحسب؛ فهو يحول التطبيقات ويضمن الأمان والأداء وتجارب المستخدم السلسة. سواء كنت تعمل على المصادقة، أو التسجيل، أو الاهتمامات الشاملة، يمكن أن تساعدك البرامج الوسيطة في إدارتها بشكل أنيق.

فهم البرامج الوسيطة

تعمل البرامج الوسيطة كجسر بين الطلب والاستجابة ، وتلعب دورًا محوريًا في دورة حياة الطلب والاستجابة في تطبيق الويب. أولاً، دعونا نحلل ماهية الطلب والاستجابة. يتم تقديم طلب بواسطة العميل (عادةً متصفح المستخدم) إلى خادم يطلب موارد محددة مثل صفحات الويب أو البيانات أو الخدمات الأخرى.

يحمل هذا الطلب معلومات أساسية، بما في ذلك طرق HTTP (GET، POST، ...)، والرؤوس، وربما نص يحتوي على بيانات. بمجرد أن يتلقى الخادم هذا الطلب، فإنه يعالج المعلومات الضرورية ويولد استجابة.

الرد هو إجابة الخادم على طلب العميل. فهو يحتوي على حالة الطلب (على سبيل المثال، النجاح والفشل)، والرؤوس، والنص الذي يتضمن غالبًا HTML أو JSON أو تنسيقات البيانات الأخرى التي يستخدمها العميل لعرض صفحة ويب أو تنفيذ المزيد من الإجراءات.

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

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

إنشاء البرامج الوسيطة

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

.

صنع PHP الحرفي: برنامج وسيط CheckAge
php artisan make:middleware CheckAge
سيقوم هذا الأمر بإنشاء ملف وسيط

CheckAge جديد في الدليل app/Http/Middleware. داخل هذا الملف، يمكنك تحديد المنطق الذي يجب تنفيذه لكل طلب.

العمر php artisan make:middleware CheckAge في هذا المثال، تتحقق البرامج الوسيطة من سمة

age في الطلب. إذا كان العمر أقل من أو يساوي 200، فإنه يعيد توجيه المستخدم إلى مسار الصفحة الرئيسية. وإلا فإنه يسمح للطلب بالمتابعة.

تسجيل البرامج الوسيطة

بمجرد إنشاء برمجيتك الوسيطة، ستحتاج إلى تسجيلها في

kernel. النواة هي جوهر تطبيق Laravel الذي يدير دورة الحياة الكاملة لطلب HTTP. إنه بمثابة مركز مركزي ينظم تدفق الطلبات عبر طبقات البرامج الوسيطة المختلفة قبل أن تصل إلى مسارات التطبيق ووحدات التحكم.

هناك طريقتان يمكنك من خلالهما تسجيل البرامج الوسيطة داخل ملف

app/Http/Kernel.php:

  1. البرمجيات الوسيطة العالمية: تعمل هذه البرامج الوسيطة أثناء كل طلب إلى طلبك.

  2. البرامج الوسيطة للطريق: يمكن تعيين هذه البرامج الوسيطة إلى محددة الطرق.

لتسجيل برنامجنا الوسيط

CheckAge كبرنامج وسيط للمسار، أضفه إلى مصفوفة $routeMiddleware في النواة:

البرامج الوسيطة المحمية $ = [ // برامج وسيطة أخرى 'checkAge' => \App\Http\Middleware\CheckAge::class, ];
php artisan make:middleware CheckAge
الآن، يمكنك تطبيق هذه البرامج الوسيطة على مساراتك أو مجموعات مساراتك:


الطريق::get('admin', function () { // لا يمكن الوصول إليه إلا إذا كان العمر أكبر من 200 })->middleware('checkAge');
php artisan make:middleware CheckAge

تقنيات البرمجيات الوسيطة المتقدمة

لا تقتصر البرامج الوسيطة في Laravel على عمليات التحقق البسيطة. فيما يلي بعض التقنيات المتقدمة لتحقيق أقصى استفادة من البرامج الوسيطة:

  1. تحديد معلمات الوسيطة
يمكن للبرامج الوسيطة قبول معلمات إضافية. يعد هذا مفيدًا للسيناريوهات التي قد يتغير فيها سلوك البرنامج الوسيط بناءً على المعلمات.


مقبض الوظيفة العامة(طلب $، الإغلاق $التالي، $role) { إذا (! $request->user()->hasRole($role)) { // إعادة التوجيه أو الإجهاض } إرجاع $next($request); }
php artisan make:middleware CheckAge
  1. تجميع الوسيطة
يمكنك تجميع عدة برامج وسيطة تحت مفتاح واحد، مما يساعد على تطبيق مجموعة من البرامج الوسيطة على العديد من المسارات.


مجموعات البرامج الوسيطة $ المحمية = [ "الويب" => [ \App\Http\Middleware\EncryptCookies::class، \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class، \Illuminate\Session\Middleware\StartSession::class، // المزيد من البرامج الوسيطة ]، ];
php artisan make:middleware CheckAge
تطبيق مجموعة البرامج الوسيطة على المسارات:


Route::middleware(['web'])->group(function () { الطريق :: الحصول على ('/'، وظيفة () { // يستخدم مجموعة البرامج الوسيطة "الويب". }); الطريق::get('لوحة المعلومات'، الوظيفة () { // يستخدم مجموعة البرامج الوسيطة "الويب". }); });
php artisan make:middleware CheckAge
  1. إنهاء البرامج الوسيطة
يمكن للبرامج الوسيطة تحديد طريقة

إنهاء التي سيتم استدعاؤها بمجرد إرسال الاستجابة إلى المتصفح. وهذا مفيد بشكل خاص لمهام مثل التسجيل أو التحليلات.

إنهاء الوظيفة العامة(طلب $، استجابة $) { // سجل الطلب والاستجابة }
php artisan make:middleware CheckAge

خاتمة

من خلال إتقان البرامج الوسيطة، يمكنك إنشاء تطبيقات ليست آمنة وفعالة فحسب، بل أيضًا قابلة للصيانة وقابلة للتطوير. سواء كنت تتعامل مع المصادقة، أو التسجيل، أو حتى ضبط سلوك تطبيقك باستخدام معلمات مخصصة، فإن البرامج الوسيطة توفر حلاً نظيفًا وأنيقًا.

احتضن قوة البرامج الوسيطة في مشاريع Laravel الخاصة بك وشاهد كيف ستغير الطريقة التي تدير بها الاهتمامات الشاملة. برمجة سعيدة!

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/cyrilmuchemi/mastering-middleware-in-laravel-an-in- Deep-guide-4bde?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3