oveysrostami / laravel-persian-faker
A Laravel package for generating Persian fake data
Package info
github.com/oveysrostami/laravel-persian-faker
pkg:composer/oveysrostami/laravel-persian-faker
1.0.0
2025-12-15 13:27 UTC
Requires
- php: ^8.2
- fakerphp/faker: ^1.24
- illuminate/support: ^12.42
README
یک پکیج ساده برای اضافه کردن دادهساز فارسی به Faker در پروژههای لاراول و تستهای PHP.
نصب
composer require oveysrostami/laravel-persian-faker
پکیج از auto-discovery لاراول استفاده میکند و به صورت خودکار به Faker\Generator اضافه میشود.
استفاده در لاراول
// داخل تستها، seeder یا factory $faker = app(\Faker\Generator::class); $faker->persianFirstName(); // حامد $faker->persianLastName(); // کریمی $faker->persianFullName('male'); // سینا مرادی $faker->iranianMobile(); // 09121234567 $faker->iranianPhone(); // 02176543210
استفاده خارج از لاراول
use Faker\Factory; use Oveysrostami\LaravelPersianFaker\PersianFakerProvider; $faker = Factory::create('fa_IR'); $faker->addProvider(new PersianFakerProvider($faker)); echo $faker->persianFullName();
متدهای فعلی
persianFirstName(?string $gender = null)— نام کوچک (مقادیرmaleیاfemaleبرای جنسیت اختیاری است)persianLastName()— نام خانوادگیpersianFullName(?string $gender = null)— نام و نام خانوادگیiranianMobile()— شماره موبایل معتبر 11 رقمیiranianPhone()— شماره ثابت شهری با کد پیششمارهiranianNationalCode()— تولید کد ملی معتبر با الگوریتم کنترل رقم دهم- متد کمکی:
PersianFakerProvider::validateIranianNationalCode($code)
- متد کمکی:
persianWord(),persianWords($nb = 3, $asText = false)persianSentence($nbWords = 6, $variableNbWords = true)persianSentences($nb = 3)persianParagraph($nbSentences = 3, $variableNbSentences = true)persianParagraphs($nb = 3)persianProvince(),persianCity($province = null),persianStreet()persianAddress(array $options = [])— به طور پیشفرض همه اجزا را دارد؛ میتوانید اجزای زیر راtrue/falseکنید یاrandomize_missing => trueبدهید تا تصادفی حذف/اضافه شوند:province,city,street,plaque,unit,postal_code
persianPostalCode()— کد پستی ۱۰ رقمی معتبر (بدون تکرار یکنواخت ارقام و بدون صفر در ابتدای کد)persianCompanyName()— نام شرکت ایرانیpersianBrandName()— نام برند/محصول ایرانیiranianBankName()— نام بانک ایرانیiranianCardNumber(?string $bankName = null)— شماره کارت ۱۶ رقمی با الگوریتم لوهن. اگرbankNameبدهید از BIN آن بانک استفاده میشود، در غیر این صورت به صورت تصادفی یکی انتخاب میشود.iranianSheba(?string $bankName = null)— شماره شبا ۲۶ کاراکتری (IR + ۲۴ رقم). اگر بانک مشخص شود از کد بانک استفاده میکند، در غیر این صورت تصادفی انتخاب میشود.persianJobTitle()— عنوان شغلی فارسی (مدیرعامل، معاون، سرتیپ، کارشناس، ...).persianProfession()— حرفه/شغل عمومی (پزشک، پرستار، کارگر، بنا، برنامهنویس، گرافیست، ...).
مدیریت دیتاست
برای اضافه/حذف نامها یا پیششمارهها، فقط فایلهای resources/data/names.php و resources/data/phones.php را ویرایش کنید. Provider دادهها را در زمان اجرا از این فایلها میخواند.
تست سریع (Smoke test)
یک اسکریپت ساده برای اطمینان از اتصال provider:
php tests/smoke.php