Skip to content

تغذية قاعدة البيانات باستعمال مكتبة Faker PHP

تغذية قاعدة البيانات باستعمال مكتبة Faker PHP

5 مارس 2015 | 00:00

أثناء عملنا في مشاريع نحتاج غالبا لتغذية قاعدة بياناتنا ببعض البيانات من أجل إجراء بعض الإختبارات وهذا ليس بالأمر البسيط خاصة إذا أردنا إدخال عشرات أو مئات السجلات إعتباطيا إلى القاعدة وهذا يا سيأخذ من المبرمج وقتا لابأس به هو في حاجة ماسة إليه. لهذا بدأت معظم إطارات العمل Frameworks الآن في مختلف لغات البرمجة تمنح خدمة للملئ العشوائي لقاعدة البيانات، في ضغطة زر، وفقا للأنواع التي يختارها المطور (مثلا إيميلات، عناوين، أسماء أشخاص، نصوص طويلة…). وفي درسنا هذا لن نستخدم أي إطار عمل، بل سنقوم بالمهمة باستعمال مكتبة PHP مستقلة اسمها Faker لصاحبها الفرنسي Francois Zaninotto.

تنصيب مكتبة Faker

أولا سنقوب بتنصيب Faker بواسطة composer (لا تنسى تثبيت composer في جهازك) ولذلك سننشئ ملفا اسمه composer.json داخل مشروعنا نضع بداخله عنوان المكتبة المراد تحميلها وفي حالتنا عنوانها fzaninotto/Faker وأمامه النسخة التي نريدها (1.4.0) :

{
  "require-dev": {
    "fzaninotto/Faker": "1.4.0"
  }
}

composer يقوم بالتحميل من هذا الموقع ولذلك عندما نريد تحميل مكتبة أو تبعية (Dependency) ما بواسطته يجب البحث عنها هناك، في حالتنا عنوان مكتبتنا هو هذا الرابط ومنه أخذنا الإسم المستعمل في ملف composer.json.

ثم بعد ذلك نفتح Terminal ونقوم بإعطاء composer الأمر بتنصيب المكتبة بواسطة هذا السطر composer install.

إذا واجهتك أي مشاكل مع Composer فالمرجو الرجوع إلى درس ما هو Composer ؟

بعد التنصيب يظهر لدينا ملف Folder اسمه vendor يضم جميع ملفات والسكريبتات الخاصة ب Faker.

Capture d’écran 2015-03-05 à 11.29.48

إنشاء قاعدة البيانات

بعد التنصيب، سنقوب بإنشاء قاعدة بياناتنا سنسميها test ونضيف إليها جدولا اسمه users يحتوي على عمودين id و email.

Capture d’écran 2015-03-05 à 10.48.01

إنشاء ملف seed.php وتغدية قاعدة البيانات

الآن سنضيف الملف seed.php إلى مشروعنا وسنضيف إليه الكود التالي :

require 'vendor/autoload.php';
 $db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
 
 $faker = Faker\Factory::create();
 
 foreach (range(0,100) as $i) {
	$db->query("INSERT INTO users (email) VALUES ('{$faker->email}')");
 }

لو أردنا مثلا إدخال أسماء عوض إيميلات يكفي أن نضع $faker->userName مكان $faker->email في الكود. للمزيد من المعلومات يرجى زيارة هذا الرابط.

الآن بمجرد أن نقوم بفتح الملف seed.php في المتصفح سنجد أن الجدول users بات يضم 100 سجل عبارة عن إيميلات كل واحد يختلف عن الآخر.

Capture d’écran 2015-03-05 à 10.46.54

أرجو أني كنت واضحا بما فيه الكفاية ولا تترددوا بطرح أسئلتكم وملاحظاتكم في منطقة التعليقات أسفله.

عيسى محمد علي
عيسى محمد علي
مطور ويب متخصص في الواجهات الأمامية، أحب التدوين وإغناء المحتوى التقني للغة الضاد وهذا كان السبب الرئيسي في إنشائي لمدونة توتومينا.