ما هي مكتبة Faker وما فائدتها؟
Faker (أو FakerPHP) هي مكتبة PHP قوية لتوليد بيانات وهمية (مزيفة). تتيح لك إنشاء مجموعات بيانات اختبارية واقعية: أسماء، عناوين، أرقام هواتف، عناوين بريد إلكتروني، نصوص، تواريخ، صور، وغيرها الكثير. هذه المكتبة لا غنى عنها عند تطوير واختبار تطبيقات الويب، وملء قواعد البيانات ببيانات تجريبية، وإنشاء نماذج أولية، وكتابة اختبارات الوحدة.
ما فائدتها؟ تخيل أنك بحاجة لاختبار نموذج تسجيل مستخدم يتطلب 20 حقلًا. التفكير يدويًا في أسماء وعناوين وأرقام جوازات مختلفة في كل مرة أمر مرهق وغير منتج. تقوم Ferk بأتمتة هذه العملية، مولدة بيانات تبدو حقيقية ولكنها ليست حقيقية. هذا يوفر ساعات من العمل ويسمح لك بالتركيز على منطق التطبيق بدلاً من إعداد البيانات.
الإمكانيات الرئيسية لـ Faker:
- توليد بيانات شخصية (أسماء أولى، ألقاب، أسماء أب، جنس)
- توليد بيانات اتصال (بريد إلكتروني، هاتف، عنوان)
- توليد محتوى نصي (فقرات، جمل، كلمات)
- توليد تواريخ، أوقات، طوابع زمنية
- توليد بيانات رقمية (أسعار، معرفات، أرقام)
- توليد صور (عبر خدمة placeholder.com)
- التدويل (دعم أكثر من 20 لغة، بما في ذلك العربية)
- قابلية التوسع (يمكنك إنشاء مزودي بيانات خاصين بك)
تثبيت Faker في PHP
يتم تثبيت Faker عبر Composer — مدير الحزم القياسي لـ PHP. تأكد من تثبيت Composer لديك (إذا لم يكن مثبتًا، قم بتنزيله من getcomposer.org).
composer require fakerphp/faker
بعد التثبيت، سيظهر مجلد vendor وملف composer.json مع إضافة التبعية في مشروعك. إذا كنت تستخدم إطار عمل (Laravel، Symfony)، فغالبًا ما تكون Faker مضمنة بالفعل في الحزمة الافتراضية.
للعمل مع المكتبة، يجب تضمين محمل Composer التلقائي:
require_once 'vendor/autoload.php';
بداية سريعة مع مثال برمجي
لننشئ سكريبتًا بسيطًا يولد بيانات مستخدم واحد:
<?php
require_once 'vendor/autoload.php';
// إنشاء مثيل Faker مع التدويل العربي
$faker = Faker\Factory::create('ar_SA');
echo "الاسم الأول: " . $faker->firstName() . "\n";
echo "اللقب: " . $faker->lastName() . "\n";
echo "البريد الإلكتروني: " . $faker->email() . "\n";
echo "رقم الهاتف: " . $faker->phoneNumber() . "\n";
echo "العنوان: " . $faker->address() . "\n";
echo "تاريخ الميلاد: " . $faker->date('Y-m-d', '2000-01-01') . "\n";
echo "رقم عشوائي: " . $faker->randomNumber(5) . "\n";
?>
نتيجة التنفيذ (مثال):
الاسم الأول: أحمد
اللقب: السيد
البريد الإلكتروني: ahmed.alsayed@example.com
رقم الهاتف: 0555 123 4567
العنوان: الرياض، شارع الملك فهد، مبنى 15، شقة 42
تاريخ الميلاد: 1995-06-15
رقم عشوائي: 48291
كما ترى، تبدو البيانات واقعية وتتوافق مع التنسيق العربي. الآن سنشرح كل طريقة بالتفصيل.
الطرق الأساسية لـ Faker
توفر Faker مئات الطرق، مجمعة حسب المزودين. دعنا نستعرض أشهرها وأكثرها فائدة.
1. firstName() — توليد الاسم الأول
الوصف: تُرجع اسمًا أولًا عشوائيًا (ذكرًا أو أنثى) حسب التدويل.
المعلمات: لا توجد معلمات.
مثال:
<?php
$faker = Faker\Factory::create('ar_SA');
echo $faker->firstName(); // أحمد، سارة، محمد
?>
2. lastName() — توليد اللقب
الوصف: تُرجع لقبًا عشوائيًا. للتدويل العربي، يصرف الألقاب بشكل صحيح حسب الجنس (إذا استخدم مع firstName).
المعلمات: لا توجد معلمات.
مثال:
<?php
$faker = Faker\Factory::create('ar_SA');
echo $faker->lastName(); // السيد، العلي، الشمري
?>