الأساسيةالخدمات

إدارة الخدمات في كوكب Kawkab

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


أمر إنشاء خدمة

لإنشاء خدمة جديدة، يمكنك استخدام الأمر التالي:

npm run kawkab service:make <name> [module]

المعلمات:

  • <name>: اسم الخدمة المراد إنشاؤها (مثل: login).
  • [module] (اختياري): اسم الوحدة التي تنتمي إليها الخدمة. إذا لم يتم تحديد وحدة، سيتم وضعها ضمن الوحدة الافتراضية main.

مثال:

npm run kawkab service:make login

الهيكل الأساسي لملف الخدمة

عند إنشاء خدمة جديدة، سيتم إنشاء ملف يحتوي على الهيكل التالي مثل:

import { BaseService, Inject, inherit } from "kawkab";
 
export class LoginService extends inherit(BaseService, Inject) {
    login() {
        console.log("Login Service!");
    }
}

شرح الكود:

  1. BaseService: فئة أساسية توفر وظائف افتراضية يمكن أن تستفيد منها الخدمات.
  2. Inject: تُستخدم لإدارة الاعتماديات (Dependency Injection).
  3. inherit: تُستخدم لدمج الوظائف من الفئات الأساسية.
  4. LoginService: مثال على خدمة تحتوي على طريقة login بسيطة تطبع رسالة إلى وحدة التحكم.

استخدام الخدمة داخل وحدة تحكم

بعد إنشاء الخدمة، يمكن استيرادها واستخدامها في وحدات التحكم (Controllers). إليك مثالًا على كيفية القيام بذلك:

import { BaseController, inherit } from "kawkab";
import { LoginService } from "../services/login";
 
export default class extends inherit(BaseController) {
  constructor(private loginService = LoginService.inject()) {
    super();
  }
 
  async post() {
    this.loginService.login();
 
    return {
      status: true,
      message: "Login Successful",
    }
  }
}

شرح الكود:

  1. LoginService.inject(): يتم حقن الخدمة تلقائيًا لاستخدامها داخل وحدة التحكم.
  2. post: يستخدم طريقة login من الخدمة وينفذ منطق تسجيل الدخول.

فوائد استخدام الخدمات

  1. إعادة استخدام الكود: يمكنك استخدام الخدمات عبر وحدات متعددة دون تكرار المنطق.
  2. تقسيم المسؤوليات: تفصل الخدمات بين منطق العمل الأساسي ووحدات التحكم.
  3. مرونة الصيانة: يسهل تحديث الخدمات بشكل مستقل دون التأثير على بقية التطبيق.
  4. إدارة الاعتماديات: يدعم إطار العمل Kawkab إدارة الاعتماديات بسهولة باستخدام Inject.

الخاتمة

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

🎉 ابدأ الآن ببناء خدمات مذهلة في إطار عمل كوكب Kawkab!