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

Bootstrap لحاوية الخدمة: البدء

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

Service Container Bootstrap: Getting Started

قبل البدء بالموضوع، قم بإنشاء ملفين جديدين في دليل وحدات التحكم:

  1. Destroy.php الذي يحتوي على الكود المستخدم لحذف ملاحظة من قاعدة البيانات.
  2. store.php الذي يحتوي على الكود لإنشاء ملاحظة جديدة باستخدام النماذج وطرق الطلب.

مقدمة لحاوية الخدمة

حاوية الخدمة هي نمط تصميم يعمل على مركزية إدارة التبعيات بين الكائنات، مما يوفر طريقة منظمة للوصول إلى الخدمات وإدارتها داخل التطبيق.

يعمل بمثابة سجل للخدمات داخل موقع الويب.

فئة الحاوية

قم أولاً بإنشاء ملف باسم Controller.php في الدليل الأساسي. في هذا قم بتهيئة فئة الحاوية المسؤولة عن إدارة روابط الخدمة وقراراتها.

  • bind(): تسجيل خدمة في الحاوية.
  • resolve(): استرداد الخدمة من الحاوية.
class Container {
    protected $bindings = [];

    public function bind($key, $resolver) {
        $this->bindings[$key] = $resolver;
    }

    public function resolve($key) {
        if (!array_key_exists($key, $this->bindings)) {
            throw new Exception("No matching binding found for {$key}");
        }
        $resolver = $this->bindings[$key];
        return call_user_func($resolver);
    }
}

فئة التطبيق

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

  • setContainer(): يضبط مثيل الحاوية للتطبيق.
  • container(): استرداد مثيل الحاوية.
  • bind(): تسجيل خدمة في الحاوية.
  • resolve(): استرداد الخدمة من الحاوية.
class App {
    protected static $container;

    public static function setContainer($container) {
        static::$container = $container;
    }

    public static function container() {
        return static::$container;
    }

    public static function bind($key, $resolver) {
        static::container()->bind($key, $resolver);
    }

    public static function resolve($key) {
        return static::container()->resolve($key);
    }
}

بوتستراب

Bootstrap هو نقطة التطبيق، حيث يتم إعداد كل شيء وتهيئته.

$container = new Container();
$container->bind('Core\Database', function () {
    $config = require base_path('config.php');
    return new Database($config['database']);
});
App::setContainer($container);

في هذه العملية، عملية التمهيد:

  1. إنشاء مثيل حاوية جديد ($حاوية)
  2. تسجيل الخدمات مع الحاوية باستخدام طريقة الربط (على سبيل المثال، Core\Database)
  3. تعيين الحاوية للتطبيق باستخدام App::setContainer($container)

مراقب

يمكن حل الخدمات من الحاوية الموجودة في وحدات التحكم باستخدام طريقة App::resolve().

$db = App::resolve('Core\Database');

الآن تم بناء حاوية الخدمة بشكل صحيح ويمكنك رؤية المشروع يعمل بشكل جيد.

أتمنى أن تكون قد فهمت الأمر بوضوح.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/ghulam_mujtaba_247/service-container-bootstrap-getting-started-293j?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3