أوامر وإعدادات نظام التنانت (Multi-tenancy) -------------------------------------------- 1) المتطلبات (بدون تشغيل أوامر تلقائية): - في ملف .env: - TENANCY_ENABLED=true - TENANCY_BASE_DOMAIN=example.com (عدّل إلى الدومين لديك) 2) إنشاء تنانت جديد (tenant:create): - الهدف: إنشاء مجلدات التنانت وملف التعريف وقاعدة البيانات (SQLite أو MySQL). - أمثلة: - php artisan tenant:create acme --name="Acme Inc" --driver=sqlite - php artisan tenant:create acme --name="Acme Inc" --driver=mysql --database=acme_db 3) تشغيل المايجريشنز (tenant:migrate): - لجميع التنانت المكتشَفين من storage/tenants: - php artisan tenant:migrate - لتنانت محدد: - php artisan tenant:migrate --tenant=acme - خيارات مهمة: - --fresh : إسقاط جميع الجداول وإعادة إنشائها - --seed : تشغيل السيدر بعد المايجريشن - --class= : تحديد Seeder بعينه مع --seed (مثال: --class=Database\\Seeders\\YourSeeder) 4) استعراض جميع التنانت (tenant:list): - يعرض قائمة التنانت الموجودة في storage/tenants: - php artisan tenant:list 5) التحديث العام للتنانت (tenant:update): - سحب آخر كود من Git وتشغيل المايجريشنز على كل التنانت: - php artisan tenant:update - ملاحظات: - يدعم تخطي خطوات git/composer عبر خيارات الأوامر (انظر المساعدة داخل الأمر). 6) سيناريوهات شائعة: - إعادة التهيئة وتشغيل السيدرز لتنانت محدد: - php artisan tenant:migrate --tenant=acme --fresh --seed - تشغيل السيدر بدون fresh: - php artisan tenant:migrate --tenant=acme --seed - تشغيل Seeder محدد: - php artisan tenant:migrate --tenant=acme --seed --class=Database\\Seeders\\YourSeeder 7) الدوال المساعدة (Helpers): - tenant() : الحصول على إعدادات التنانت الحالي (إن وُجد) - tenant_subdomain() : إرجاع السبدومين الحالي - tenant_path($path = '') : إرجاع مسار داخل مجلد التنانت الحالي