ebnibrahem / mic-sole-laravel-gen
Laravel CRUD Generator Package with Vue/React Frontend Support
Package info
github.com/ebnibrahem/mic-sole-laravel-gen
pkg:composer/ebnibrahem/mic-sole-laravel-gen
Requires
- php: ^8.2
- laravel/framework: ^12.0
README
حزمة Laravel لتوليد CRUD كامل مع دعم Vue 3 Dashboard وواجهة React لتوليد الملفات
المميزات
- ✅ توليد ملفات Backend كاملة (Model, Controller, Service, Request, Resource, Migration, Seeder, Factory, Policy)
- ✅ توليد ملفات Frontend (Vue 3 Pages, Components, Types, Routes)
- ✅ واجهة React حديثة لتوليد CRUD (React 19 + TypeScript + Tailwind CSS)
- ✅ دعم MicResponseTrait لتنسيق الاستجابات
- ✅ معالجة أخطاء موحدة (MICApiResponse)
- ✅ دعم Pagination والفلترة
- ✅ دعم Sorting والبحث
- ✅ دعم التصدير (Excel, PDF, Image)
- ✅ دعم الحذف المتعدد والتفعيل/إلغاء التفعيل المتعدد
- ✅ نظام صلاحيات مدمج (Permissions, Roles)
- ✅ واجهة مستخدم حديثة (Vue 3 + TypeScript + PrimeVue)
- ✅ نظام ترجمة متكامل
- ✅ Rollback تلقائي للأخطاء
- ✅ مزامنة تلقائية للقوالب والواجهة
التثبيت
composer require ebnibrahem/mic-sole-laravel-gen --dev
الإعداد السريع
1. إعداد Dashboard
php artisan mic-sole:init-dashboard --with-example
هذا الأمر سيقوم بـ:
- إنشاء بنية Dashboard كاملة
- إعداد Vite و TypeScript
- إنشاء نظام إدارة المستخدمين (User, Role, Permission) كمثال
- توليد جميع الملفات المطلوبة
2. تثبيت Dependencies
npm install
3. تشغيل Migrations
php artisan migrate
4. بناء التطبيق
npm run dev
# أو للـ production
npm run build
5. تثبيت واجهة CRUD Generator (اختياري)
php artisan mic-sole:install-ui --update-package-json npm install npm run dev
ثم افتح: http://your-app.test/generator
الأوامر المتاحة
mic-sole:init-dashboard
إنشاء بنية Dashboard كاملة
Options:
--with-example: إنشاء مثال (User, Role, Permission)--force: استبدال الملفات الموجودة ومسح ملف.mic--skip-validation: تخطي التحقق من TypeScript
Examples:
php artisan mic-sole:init-dashboard php artisan mic-sole:init-dashboard --with-example php artisan mic-sole:init-dashboard --with-example --force php artisan mic-sole:init-dashboard --with-example --fresh
mic-sole:setup-dashboard
إعداد Dashboard فقط (بدون مثال)
php artisan mic-sole:setup-dashboard
mic-sole:status
عرض حالة الملفات المولدة
Options:
--model=MODEL: عرض ملفات موديل محدد--type=TYPE: عرض ملفات نوع محدد--exists: عرض الملفات الموجودة فقط--missing: عرض الملفات المفقودة فقط
Examples:
php artisan mic-sole:status php artisan mic-sole:status --model=Post php artisan mic-sole:status --exists
mic-sole:rollback
التراجع عن الملفات المولدة
Options:
--level=N: التراجع عن عدة مستويات (افتراضي: 1)--id=ID: التراجع عن توليد محدد--list: عرض قائمة بجميع التوليدات--stats: عرض إحصائيات--preview: معاينة ما سيتم حذفه واستعادته بدون تنفيذ التراجع
Examples:
# التراجع عن آخر جيل php artisan mic-sole:rollback # التراجع عن 3 أجيال php artisan mic-sole:rollback --level=3 # معاينة التراجع قبل التنفيذ php artisan mic-sole:rollback --preview # عرض قائمة بجميع التوليدات php artisan mic-sole:rollback --list # التراجع عن جيل محدد php artisan mic-sole:rollback --id=gen_1234567890
ما يقوم به:
- ✅ حذف الملفات المولدة في الأجيال المحددة
- ✅ استعادة الملفات المعدلة (مثل
routes/api.phpوroutes.ts) من ملفات التعديلات المؤقتة - ✅ تنظيف ملفات التعديلات المؤقتة للأجيال المتراجع عنها
- ✅ تحديث ملف
.micلإزالة الأجيال المتراجع عنها
mic-sole:sync-templates
مزامنة التعديلات من الملفات المولدة إلى القوالب
Options:
--file=FILE: مزامنة ملف محدد فقط--force: استبدال القوالب الموجودة بدون تأكيد--dry-run: عرض ما سيتم مزامنته بدون تنفيذ
Examples:
php artisan mic-sole:sync-templates php artisan mic-sole:sync-templates --file=resources/ts/_dashboard/pages/Authorization.vue php artisan mic-sole:sync-templates --force
mic-sole:verify-templates
التحقق من تطابق القوالب مع الملفات المولدة
Options:
--type=TYPE: التحقق من نوع محدد (backend, vue, all) - افتراضي: all--detailed: عرض جميع القوالب المفحوصة--fix: محاولة إصلاح المشاكل تلقائياً
Examples:
php artisan mic-sole:verify-templates php artisan mic-sole:verify-templates --type=backend php artisan mic-sole:verify-templates --type=vue --detailed php artisan mic-sole:verify-templates --fix
ما يقوم به:
- ✅ التحقق من وجود جميع القوالب المطلوبة
- ✅ التحقق من وجود placeholders المطلوبة في كل قالب
- ✅ التحقق من تطابق القوالب الثابتة مع الملفات المولدة
- ✅ عرض تقرير بالمشاكل الموجودة
mic-sole:sync-ui-to-package
مزامنة ملفات الواجهة من المشروع إلى الحزمة (للتطوير)
Options:
--file=FILE: مزامنة ملف محدد فقط--force: استبدال الملفات الموجودة بدون تأكيد--watch: مراقبة التغييرات ومزامنتها تلقائياً--dry-run: عرض ما سيتم مزامنته بدون تنفيذ
Examples:
# مزامنة تلقائية (Watch Mode) php artisan mic-sole:sync-ui-to-package --watch # مزامنة يدوية php artisan mic-sole:sync-ui-to-package # مزامنة ملف واحد php artisan mic-sole:sync-ui-to-package --file=resources/js/crud-generator/CrudGeneratorApp.tsx
mic-sole:install-ui
تثبيت ملفات واجهة CRUD Generator من الحزمة إلى المشروع
Options:
--force: استبدال الملفات الموجودة بدون تأكيد--update-package-json: تعديل package.json تلقائياً--skip-routes: تخطي إضافة routes--skip-vite: تخطي تحديث vite.config.js--dry-run: عرض ما سيتم تثبيته بدون تنفيذ
Examples:
php artisan mic-sole:install-ui php artisan mic-sole:install-ui --update-package-json php artisan mic-sole:install-ui --force
ما يقوم به:
- ✅ نسخ ملفات الواجهة (React components)
- ✅ إضافة routes إلى
routes/web.php - ✅ تحديث
vite.config.js(إضافة React plugin و include/exclude) - ✅ فحص
package.json(مع خيار التعديل التلقائي) - ✅ عرض الخطوات التالية
mic-sole:add-manual-files
إضافة ملفات Blade يدوية إلى نظام التتبع
php artisan mic-sole:add-manual-files
استخدام واجهة CRUD Generator
بعد تثبيت الواجهة (mic-sole:install-ui):
- افتح المتصفح:
http://your-app.test/generator - أدخل بيانات الموديل:
- اسم الموديل (مثل:
Product) - الحقول (Name, Type, Required, Unique, Show In)
- العلاقات (Relationships)
- الخيارات (Permissions, Translations)
- اسم الموديل (مثل:
- اضغط "Generate"
- سيتم توليد جميع الملفات تلقائياً
البنية المولدة
Backend Files
app/Models/{{Model}}.phpapp/Http/Controllers/{{Model}}Controller.phpapp/Services/{{Model}}Service.phpapp/Http/Requests/{{Model}}Request.phpapp/Http/Resources/{{Model}}Resource.phpdatabase/migrations/{{timestamp}}_create_{{table}}_table.phpdatabase/seeders/{{Model}}Seeder.phpdatabase/factories/{{Model}}Factory.phpapp/Policies/{{Model}}Policy.phproutes/api/dashboard/api-{{models}}.php
Frontend Files (Vue 3)
resources/ts/_dashboard/pages/{{Models}}.vue(List Page)resources/ts/_dashboard/pages/{{Model}}Create.vue(Create Page)resources/ts/_dashboard/pages/{{Model}}.vue(Detail Page)resources/ts/_dashboard/pages/_{{models}}/table.vue(Table Component)resources/ts/_dashboard/pages/_{{models}}/form.vue(Form Component)resources/ts/_dashboard/pages/_{{models}}/form-show.vue(Show Component)resources/ts/_dashboard/pages/_{{models}}/filter.vue(Filter Component)resources/ts/shared/types/{{model}}.ts(TypeScript Types)resources/ts/_dashboard/router/raws/{{model}}.ts(Vue Router Routes)
نظام الصلاحيات
الحزمة تدعم نظام صلاحيات مدمج:
{{model}}_access- الوصول للصفحة{{model}}_view- عرض{{model}}_create- إنشاء{{model}}_edit- تعديل{{model}}_delete- حذف
نظام الترجمة
الترجمات موجودة في resources/lang/{{locale}}/:
common.php- ترجمات مشتركةauth.php- ترجمات المصادقة{{model}}.php- ترجمات خاصة بالنموذج
استخدام الترجمة في Vue
import { c } from '@dashboard/utilities/langHelper'; c('dashboard', 'common') // "لوحة التحكم" c('plural', 'user') // "مستخدمين"
نظام تتبع الملفات
الحزمة تدعم تتبع الملفات المولدة:
- تتبع جميع الملفات في ملف
.mic(قاعدة بيانات الهيستوري) - حفظ حالة التوليد في
storage/app/mic-sole-laravel-gen/ - حفظ التعديلات على الملفات المشتركة (مثل
routes/api.phpوroutes.ts) في ملفات مؤقتة - عرض حالة الملفات عبر
php artisan mic-sole:status - Rollback تلقائي عند فشل TypeScript validation
- Rollback يدوي عبر
php artisan mic-sole:rollback - معاينة التراجع قبل التنفيذ عبر
php artisan mic-sole:rollback --preview
بنية ملفات التتبع
storage/app/mic-sole-laravel-gen/
├── index.json # ملف الهيستوري الرئيسي
├── generations/ # ملفات الأجيال الفردية
│ ├── gen_1234567890.json # ملفات الجيل الأول
│ └── gen_9876543210.json # ملفات الجيل الثاني
└── modifications/ # ملفات التعديلات المؤقتة
├── gen_1234567890.json # تعديلات الجيل الأول
└── gen_9876543210.json # تعديلات الجيل الثاني
كيف يعمل نظام التتبع
-
عند التوليد:
- يتم حفظ معلومات الجيل في
index.json - يتم حفظ قائمة الملفات المولدة في
generations/{generationId}.json - عند تعديل ملفات مشتركة (مثل
routes/api.php):- يتم حفظ المحتوى الأصلي قبل التعديل
- يتم حفظ التعديلات المضافة في
modifications/{generationId}.json
- يتم حفظ معلومات الجيل في
-
عند التراجع:
- يتم حذف الملفات المولدة
- يتم استعادة الملفات المعدلة من ملفات التعديلات المؤقتة
- يتم حذف ملفات التعديلات المؤقتة للأجيال المتراجع عنها
- يتم تحديث
index.jsonلإزالة الأجيال المتراجع عنها
-
معاينة التراجع:
- يعرض الملفات التي سيتم حذفها
- يعرض الملفات التي سيتم استعادتها
- يعرض الأجيال التي سيتم إزالتها
- لا يقوم بأي تعديلات على الملفات
المتطلبات
- PHP >= 8.2
- Laravel >= 12.0
- Node.js >= 18.0
- Vue 3
- PrimeVue
- TypeScript
- Pinia
الترخيص
MIT
الدعم
للدعم والمساعدة، يرجى فتح Issue في المستودع.
المطور
- محمدابراهيم
- ebnibrahem@gmail.com
- 249915102431
ملفات التوثيق الإضافية
UI_COMPLETE_GUIDE.md- دليل شامل لواجهة CRUD GeneratorQUICK_START_AR.md- دليل البدء السريع بالعربية