البرمجة

كيفية الوصول إلى حاوية الحقن في وسيط Slim Framework v3

في Slim Framework الإصدار 3، تم تغيير الطريقة التي يتم فيها التعامل مع حاوية الحقن (DI container) في الوسيط (middleware)، وذلك بما يتناسب مع تحسينات الإصدار. في هذا السياق، يمكنك الوصول إلى حاوية الحقن من خلال الطلب ($request) باستخدام الطريقة getAttribute. دعونا نقوم بتوضيح الطريقة المناسبة للوصول إلى حاوية الحقن في وسيطك:

php
namespace CrSrc\Middleware; class Auth { /** * Example middleware invokable class * * @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request * @param \Psr\Http\Message\ResponseInterface $response PSR7 response * @param callable $next Next middleware * * @return \Psr\Http\Message\ResponseInterface */ public function __invoke($request, $response, $next) { // استخدام الطريقة getAttribute للوصول إلى حاوية الحقن $container = $request->getAttribute('your_container_attribute_name'); // الآن يمكنك استخدام $container كما تشاء // مثال: $auth = $container->get('auth'); if (!$container->get('auth')->isAuthenticated()) { // غير مصدق ويجب أن يكون مصدقًا للوصول إلى هذا المورد return $response->withStatus(401); } // مرر إلى الدالة القادمة في السلسلة $response = $next($request, $response); // بعد return $response; } }

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

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

الوسيط (Middleware) في إطار Slim Framework يُستخدم لتنفيذ تحكم إضافي أو تعديل في طلب والرد الذي يتم تمريره خلال التطبيق. في مثالك، يبدو أن الهدف من الوسيط هو التحقق من صلاحية الوصول باستخدام خدمة المصادقة (auth) الموجودة في حاوية الحقن.

المزيد من المعلومات يمكن أن تكون مفيدة لفهم السياق بشكل أعم:

  1. حاوية الحقن في Slim:
    Slim Framework يعتمد على حاوية حقن الإعتماد (Dependency Injection Container) لإدارة التبادل بين الكائنات. تقدم الحاوية وسيلة لتنظيم وتسهيل استخدام الخدمات في تطبيقك.

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

  3. الطريقة الجديدة للوصول إلى حاوية الحقن:
    في Slim v3، تم استخدام getAttribute على الطلب للوصول إلى حاوية الحقن بدلاً من استخدام $this->getContainer() كما كان في Slim v2. هذا يمكنك من استخدام حاوية الحقن في وظائف الوسيط بطريقة أكثر مرونة.

  4. تكوين الوسيط:
    لاحظ أنه يجب تكوين واستخدام الوسيط بشكل صحيح في تطبيق Slim. يجب أن تقوم بتحديد اسم فريد لسمة الحاوية واستخدامها بشكل صحيح في الطلبات المستقبلة.

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

باستخدام هذه المعلومات، يمكنك تكوين واستخدام وسيط الأمان الخاص بك بشكل فعّال داخل تطبيق Slim Framework والتحقق من صحة الوصول بشكل فعّال.

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