محتويات الصفحة
متطلبات النظام
يعمل Legion Engine على أي بيئة استضافة مشتركة cPanel عادية. لا حاجة لأي تكوين خاص.
| المكوّن | الحد الأدنى | الموصى به | ملاحظات |
|---|---|---|---|
| PHP | 8.1 | 8.2+ | مطلوب PDO وGD وcURL وmbstring |
| MySQL | 5.7 | 8.0+ | محرك InnoDB موصى به |
| Web Server | Apache 2.4 | Apache 2.4+ | mod_rewrite, .htaccess enabled |
| Disk | 50 MB | 500 MB+ | بالإضافة إلى مساحة للرفع |
| cURL | مطلوب | - | لاستدعاءات الـ API الخارجية |
التثبيت
يستخدم Legion نظام نشر بنصوص Shell. تستغرق العملية أقل من دقيقتين على أي خادم بصلاحية SSH.
1. انسخ مساحة العمل
تحتوي مساحة عمل ai_test على جميع النصوص والتكوينات والوثائق. انسخها إلى جهازك المحلي.
2. أنشئ تكوين المشروع
أضف ملف JSON في config/projects/YOUR_PROJECT.json مع بيانات اعتماد الخادم واسم قاعدة البيانات ومسار المشروع.
3. شغّل deploy.sh
يجد نص النشر أحدث إصدار من Legion، وينشئ قاعدة البيانات والمستخدم، ويستخرج المحرك ويضبط كل شيء تلقائياً.
4. شغّل reset_legion.sh
ينشئ هذا هيكل المشروع القياسي: العروض والأصول ومجلد الـ API وخطافات المحرك المخصصة.
5. شغّل brand_setup.sh
ضبط الخطوط والألوان واسم الموقع من ملف JSON للعلامة التجارية. يستغرق أقل من 30 ثانية.
هيكل المشروع
كل مشروع Legion يتبع نفس الهيكل. فهمه ضروري قبل كتابة أي كود.
المجلدات الأساسية
- legion/project/public/views/ — جميع ملفات عرض PHP تذهب هنا
- legion/project/public/assets/css/ — ملفات CSS: main.css وrtl.css وresponsive.css
- legion/project/public/api/ — نقاط الـ API المخصصة
- legion/project/private/custom_engine/backend/ — خطافات PHP وتكوين مخصص
- legion/engine/ — المحرك الأساسي — لا تعدّل مباشرة
قاعدة تنظيم CSS
- main.css — جميع الأنماط الأساسية LTR
- rtl.css — تجاوزات للعربية فقط
- responsive.css — نقاط التوقف فقط
العمل مع الوحدات
الوحدات هي اللبنة الأساسية في Legion. كل وحدة هي كيان بيانات كامل مع جدول قاعدة بيانات ولوحة تحكم وAPI.
إنشاء وحدة
استخدم create_module.sh مع حمولة JSON تحدد اسم الوحدة والبادئة والحقول.
تعديل وحدة
استخدم modify_module.sh لإضافة الحقول أو إزالتها. احرص دائماً على جلب أحدث إصدار من الوحدة أولاً.
القواعد المقدسة للوحدات
- لا تعدّل قاعدة البيانات مباشرة — استخدم نصوص الوحدات دائماً
- املأ دائماً field_tip_translation وfield_help_translations
- لا تستخدم JS alert() — استخدم End::json() وmsg() بدلاً منها
عمليات قاعدة البيانات
يوفر Legion منشئ استعلامات OO نظيف وفئة Model لجميع تفاعلات قاعدة البيانات.
إضافة مدخل
استخدم فئة Model لإضافة المدخلات. اتصل دائماً بـ co() قبل process().
الاستعلام عن البيانات
استخدم فئة DB للاستعلامات. اضبط where وparams وorder وlimit واتصل بـ process().
SQL مباشر
للاستعلامات المعقدة، استخدم DB::query() مع معاملات الاستعلامات المُعدّة. لا تدمج مدخلات المستخدم في سلاسل SQL.
نقاط الـ API
أنشئ نقاط API مخصصة بوضع ملفات PHP في legion/project/public/api/ENDPOINT_NAME/index.php.
صيغة الاستجابة
استخدم دائماً End::json() لإرجاع الاستجابات. البارامتر الثالث هو البيانات — استخدم custom_desc: للرسائل.
المصادقة
تحقق من جلسة المستخدم بـ Auth::isLogged(). لطلبات API المحمول، تحقق من الرمز الممرر في الرؤوس.