البرمجة

إزالة معلمة api_token في Laravel 5

بما أنك تستخدم Laravel 5 وتواجه تحدي في إزالة معلمة من جميع كائنات الطلب (Request Objects) على مستوى المُتحكم (Controller Level)، فإن هناك حلولٌ تقنية يمكن اعتمادها لتحقيق هذا الغرض.

أحد الطرق للتعامل مع هذا التحدي هو استخدام ميزة المتوسطات (Middleware) في Laravel. يمكنك إنشاء متوسطة خاصة لتنفيذ عملية إزالة المعلمة (parameter) المحددة (مثل api_token) من جميع كائنات الطلب قبل أن يصل الطلب إلى الدالة المخصصة في المتحكم.

فلنفترض أن لديك متوسطة تسمى “RemoveApiTokenParameterMiddleware”. يمكنك إنشاءها باستخدام الأمر التالي:

php
php artisan make:middleware RemoveApiTokenParameterMiddleware

سيقوم هذا الأمر بإنشاء ملف جديد للمتوسطة في مجلد Middleware.

بعد ذلك، يمكنك تعديل المتوسطة لتنفيذ الوظيفة المطلوبة. يجب أن تقوم المتوسطة بفحص جميع كائنات الطلب وإزالة المعلمة api_token إذا وُجدت.

في الملف RemoveApiTokenParameterMiddleware.php:

php
namespace App\Http\Middleware; use Closure; class RemoveApiTokenParameterMiddleware { public function handle($request, Closure $next) { // إزالة المعلمة api_token إذا كانت موجودة في كائن الطلب $request->request->remove('api_token'); return $next($request); } }

ثم، يجب عليك تسجيل المتوسطة الجديدة في ملف Kernel.php الذي يقع في مسار app/Http:

php
protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ // ... \App\Http\Middleware\RemoveApiTokenParameterMiddleware::class, ], ];

هذا سيؤكد تنفيذ المتوسطة على جميع مسارات الـ API. وبهذا، سيتم إزالة المعلمة api_token من جميع كائنات الطلب تلقائيًا قبل أن يصل الطلب إلى دوال التحكم في المُتحكمات الخاصة بك.

المزيد من المعلومات

بالتأكيد، يُمكننا استكمال المقال بمزيد من التفاصيل والشروحات لضمان فهم شامل للموضوع.

فيما يلي الجزء المكمل للمقال:


عندما تقوم بتسجيل المتوسطة في مجموعة الوسيط “api” كما قمنا بذكره، فإنها ستُطبق على جميع الطلبات التي تصل إلى مسارات الـ API في تطبيقك. وهذا يشمل أيضًا جميع الدوال في مُتحكماتك الخاصة بالـ API.

الآن، بمجرد تنفيذ المتوسطة كما هو موضح، لن تعود معلمة api_token تظهر في كائنات الطلب في مُتحكماتك. بمعنى آخر، لن تحتاج بعد الآن إلى استخدام unset($request['api_token']) في كل دالة تحكم تحتاج إلى استخدام الطلب.

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

من الجيد أن نلاحظ أن هذا الحل لن يؤثر على عمليات التوثيق والمصادقة التي تعتمد على المعلمة api_token، حيث أن المتوسطة تقوم فقط بإزالة المعلمة من كائنات الطلب وليس من الطلب نفسه.

بهذا الشكل، يمكنك تنظيف وتبسيط كود التحكم في تطبيقك وتحسين صيانته وإدارته في المستقبل. استخدام المتوسطات لتنفيذ مثل هذه الوظائف العامة هو أحد الأساليب المفيدة والقوية التي توفرها Laravel لتطوير تطبيقات الويب بطريقة منظمة وقابلة للتوسع.

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

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


أتمنى أن يكون هذا المحتوى مفيدًا وشاملاً، وأن يوفر للقراء فهمًا جيدًا لكيفية إزالة المعلمة من جميع كائنات الطلب في Laravel 5 باستخدام المتوسطات.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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