نمط HMVC في كوكب Kawkab
نمط HMVC (Hierarchical Model-View-Controller) هو امتداد لنمط MVC التقليدي، حيث يتم تنظيم التطبيق في وحدات مستقلة. في كوكب، كل وحدة تحتوي على الـ MVC الخاص بها.
مفهوم HMVC
ما هو HMVC؟
- H تعني Hierarchical (هرمي)
- MVC هي نفس المكونات الأساسية (النموذج، العرض، المتحكم)
- كل وحدة تعمل بشكل مستقل
- يمكن للوحدات التواصل مع بعضها البعض
هيكل الوحدات
app/
└── main/
└── controllers/
├── index.ts // يمثل "/"
├── about.ts // يمثل "/about"
└── users/
├── index.ts // يمثل "/users"
└── [id].ts // يمثل "/users/:id"
أنواع المسارات
1. المسارات الثابتة
// app/modules/main/controllers/about.ts
import { BaseController, req } from "kawkab";
export default class extends BaseController {
get() {
return {
message: "صفحة حول"
}
}
}
2. المسارات الديناميكية
// app/modules/main/controllers/users/[id].ts
import { BaseController, req } from "kawkab";
export default class extends BaseController {
get() {
return {
message: `المستخدم ${req.var('id')}`
}
}
}
إنشاء وحدة جديدة
يمكنك إنشاء وحدة جديدة باستخدام الأمر:
npm run kawkab module:make blog
مثال على الوحدات
1. وحدة المدونة
// app/modules/blog/controllers/posts/index.ts
import { BaseController, req } from "kawkab";
export default class extends BaseController {
get() {
return {
message: "مقالات المدونة",
data: [
{ title: "المقال الأول" },
{ title: "المقال الثاني" }
]
};
}
}
2. وحدة المتجر
// app/modules/shop/controllers/products/index.ts
import { BaseController, req } from "kawkab";
export default class extends BaseController {
get() {
return {
message: "منتجات المتجر",
data: [
{ name: "منتج 1" },
{ name: "منتج 2" }
]
};
}
}
مميزات HMVC في كوكب
1. تنظيم أفضل للكود
- كل وحدة مستقلة بذاتها
- سهولة إدارة المشاريع الكبيرة
- تقسيم المنطق حسب الوظيفة
2. إعادة استخدام الكود
- يمكن استخدام نفس الوحدة في مشاريع مختلفة
- مشاركة الوظائف بين الوحدات
- تقليل تكرار الكود
3. صيانة أسهل
- تعديل وحدة لا يؤثر على الوحدات الأخرى
- اختبار كل وحدة بشكل منفصل
- تحديث الوظائف بسهولة
أفضل الممارسات
-
تقسيم منطقي للوحدات
- كل وحدة تمثل جزء مستقل من التطبيق
- تجنب التداخل بين الوحدات
-
الاستقلالية
- كل وحدة تعمل بشكل مستقل
- تقليل الاعتماد بين الوحدات
-
إعادة الاستخدام
- تصميم الوحدات بحيث يمكن إعادة استخدامها
- مشاركة المكونات المشتركة
الخاتمة
نمط HMVC في كوكب يوفر:
- تنظيم أفضل للمشاريع الكبيرة
- مرونة في إدارة الوحدات
- قابلية للتوسع والصيانة
- إمكانية إعادة استخدام الكود
يمكنك البدء باستخدام الوحدة الرئيسية main
ثم إضافة وحدات جديدة حسب احتياجات مشروعك.