في إطار Laravel، Seeder هو أداة بتساعدك على ملء قاعدة البيانات ببيانات وهمية أو بيانات افتراضية بسرعة وسهولة، بدل ما تكتب البيانات يدويًا في كل مرة. ده بيكون مفيد جدًا لما تكون بتطور تطبيق ولسه مش عندك بيانات حقيقية أو عايز تجرب حاجات معينة في المشروع بدون ما تأثر على البيانات الفعلية.
إزاي الـ Seeder بيشتغل؟
في Laravel، الـ Seeder بيشتغل عن طريق ملفات PHP بتنشيء بيانات جديدة في الجداول (tables) الموجودة في قاعدة البيانات. كل ملف Seeder بيبقى مسؤول عن جزء معين من البيانات اللي عايز تزرعها (تدخلها) في الجداول.
إزاي تقدر تنشئ Seeder في Laravel؟
عشان تنشئ Seeder جديد، تقدر تستخدم Artisan Command اللي بيوفره Laravel كالتالي:
تشغيل الـ Seeder:
بعد ما تكتب الكود اللي عايز تستخدمه، كل اللي عليك تعمله هو تشغيل الـ Seeder باستخدام الأمر ده:
php artisan db:seed –class=UsersTableSeeder
ده هيشغل الـ Seeder اللي انت كتبته ويدخل البيانات اللي جهزتها في قاعدة البيانات.
استخدام الـ Faker لملء البيانات بشكل تلقائي:
لو محتاج تملأ البيانات بشكل عشوائي أو وهمي، Laravel بيوفرلك مكتبة اسمها Faker عشان تولد بيانات تلقائية زي الأسماء، العناوين، الإيميلات، وغيرها.
مثال على استخدام Faker:
الكود ده هيدخل 10 مستخدمين وهميين في قاعدة البيانات باستخدام Faker لتوليد أسماء وإيميلات عشوائية.
تشغيل كل الـ Seeders مرة واحدة:
لو عندك أكتر من Seeder وعايز تشغلهم كلهم مرة واحدة، ممكن تستخدم الأمر:
php artisan db:seed
ده هيشغل كل الملفات اللي موجودة في DatabaseSeeder اللي هي الملف الأساسي اللي بيشغل كل Seeders التانية.
حذف البيانات (إعادة ضبط) باستخدام الـ Migrate:
لو عايز تحذف البيانات الموجودة في قاعدة البيانات وتعيد إدخال الـ Seeders تاني، تقدر تستخدم الأمر ده:
php artisan migrate:fresh –seed
ده هيعيد إنشاء قاعدة البيانات من الصفر ويدخل كل البيانات اللي جهزتها في الـ Seeders.
إيه فائدة الـ Seeder؟
- اختبار التطبيق: بيساعدك تملى قاعدة البيانات ببيانات وهمية لاختبار أداء التطبيق بشكل حقيقي.
- تطوير أسرع: بدلاً من إدخال البيانات يدويًا، تقدر تجهز ملفات Seeder وتستخدمها في كل مرة تعيد ضبط قاعدة البيانات.
- ملء البيانات بشكل متكرر: لو بتشتغل على مشروع ومحتاج تدخل نفس البيانات كتير، Seeder هيكون الحل الأمثل ليك.