المفاهيمدورة الحياة

دورة حياة التطبيق في كوكب Kawkab

إطار العمل كوكب Kawkab يعتمد على مفهوم دورة حياة التطبيق (Application Lifecycle) لإدارة تهيئة التطبيق واستقبال الطلبات بطريقة منظمة. تبدأ دورة حياة التطبيق من نقطة التهيئة وتنتقل إلى استقبال ومعالجة كل طلب.


تهيئة التطبيق (Initialization)

1. نقطة البداية: index.ts

الملف index.ts هو نقطة البداية لتطبيق كوكب Kawkab. يقوم باستيراد الإطار وتهيئة التطبيق بناءً على الإعدادات المعرفة مسبقًا.

import { kawkab } from 'kawkab'
import { app as config } from './app/configuration'
 
// تهيئة التطبيق باستخدام الإعدادات
export const app = kawkab.init(config)

2. ملف الإعدادات: configuration.ts

هذا الملف يحتوي على الإعدادات اللازمة لتشغيل التطبيق. يعتمد التطبيق على مزود الخدمة (Provider) الذي يتولى مسؤولية تسجيل الوحدات (Modules) وتهيئتها.

import { Provider } from './provider'
 
export const app = {
    provider: Provider,
}

مزود الخدمة (Provider)

دور مزود الخدمة

المزود هو المسؤول عن تسجيل الوحدات (Modules) اللازمة للتطبيق وتقديم التهيئة المطلوبة. يتم تنفيذه من خلال فئة (Class) موروثة من BaseProvider.

import { BaseProvider } from "kawkab"
 
export class Provider extends BaseProvider {
    /**
     * المسار الحالي للمزود
     * يتم استخدامه للحصول على مسار الدليل الحالي.
     */
    protected currentDir: string = __dirname
 
    /**
     * تسجيل الوحدات
     * يتم استدعاء هذه الدالة مرة واحدة عند بدء تشغيل التطبيق.
     * تسجل وتُهيئ الوحدات اللازمة للتطبيق.
     */
    async register() {
        await this.modules()
    }
 
    /**
     * الإعداد مع كل طلب
     * يتم استدعاء هذه الدالة مع كل طلب جديد.
     * تُستخدم لتسجيل الإعدادات أو الخدمات الإضافية.
     */
    boot() {
        // قم بكتابة التعليمات البرمجية هنا
    }
}

دورة حياة المزود

  1. Register:
    يتم استدعاؤها مرة واحدة فقط عند بدء تشغيل الخادم. تُستخدم لتسجيل الوحدات (Modules) وإجراء التهيئات اللازمة.

  2. Boot:
    يتم استدعاؤها مع كل طلب جديد لمعالجة الإعدادات الديناميكية أو خدمات الطلب.


توضيح دورة حياة التطبيق

  1. تهيئة الإطار:

    • يبدأ الإطار عند استدعاء kawkab.init() في ملف index.ts.
    • يتم استيراد إعدادات التطبيق من configuration.ts.
  2. تسجيل الوحدات:

    • يقوم المزود باستدعاء register() لتسجيل الوحدات اللازمة للتطبيق.
  3. معالجة الطلبات:

    • يتم استدعاء boot() مع كل طلب جديد لتقديم خدمات إضافية أو إعادة تهيئة.

الخلاصة

يوفر إطار العمل كوكب Kawkab دورة حياة واضحة ومُنظمة للتطبيق، مما يتيح للمطورين إمكانية إدارة تسجيل الوحدات وتهيئتها بطريقة سلسة. باستخدام Provider، يمكن تخصيص التهيئة وضمان أداء عالي للتطبيق عند التعامل مع الطلبات.