usmanahmedmalik / muslim-name-faker
Generate realistic Muslim fake names from Arab, Iranian, and Pakistani origins. Works with Laravel or standalone PHP.
Package info
github.com/usmanahmedmalik/muslim-name-faker
pkg:composer/usmanahmedmalik/muslim-name-faker
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
Requires (Dev)
- phpunit/phpunit: ^9.0|^10.0|^11.0
This package is not auto-updated.
Last update: 2026-03-29 21:13:15 UTC
README
A PHP package that generates realistic fake Muslim names for testing and development purposes. Works seamlessly with Laravel or as a standalone PHP library.
Features
- 1300+ Authentic Names from Arab, Iranian, Pakistani, Indonesian, Malaysian, Bangladeshi, and African Muslim origins
- Gender-Specific male and female name generation
- Origin Filtering to generate names from specific regions
- Laravel Integration with Service Provider and Facade
- Standalone PHP Support for use in any PHP project
- Helper Functions for quick and easy name generation
- Fully Tested with comprehensive PHPUnit test suite
Installation
Via Composer
composer require usmanahmedmalik/muslim-name-faker
Laravel Auto-Discovery
If you're using Laravel 5.5 or higher, the package will automatically register itself. For older versions, add the service provider to config/app.php:
'providers' => [ // ... MuslimNameFaker\Laravel\MuslimNameFakerServiceProvider::class, ],
And optionally add the facade:
'aliases' => [ // ... 'MuslimNameFaker' => MuslimNameFaker\Laravel\Facades\MuslimNameFaker::class, ],
Usage
Standalone PHP
use MuslimNameFaker\MuslimNameFaker; $faker = new MuslimNameFaker(); // Generate any Muslim name echo $faker->name(); // Output: "Hassan Al-Rashid" // Generate male or female names echo $faker->male(); // Output: "Omar Khalil" echo $faker->female(); // Output: "Fatima Hussain" // Generate names by origin echo $faker->arab(); // Output: "Ahmed Al-Mansour" echo $faker->iranian(); // Output: "Reza Hosseini" echo $faker->pakistani(); // Output: "Ali Khan" echo $faker->indonesian(); // Output: "Abdullah Hidayat" echo $faker->malaysian(); // Output: "Hafiz Rahman" echo $faker->bangladeshi(); // Output: "Kamal Hossain" echo $faker->african(); // Output: "Ibrahim Diallo" // Combine gender and origin echo $faker->male('arab'); // Output: "Khalid Said" echo $faker->female('iranian'); // Output: "Leila Rezaei" // Generate first names only echo $faker->firstName(); // Output: "Yusuf" echo $faker->maleFirstName('pakistani'); // Output: "Imran" echo $faker->femaleFirstName('arab'); // Output: "Aisha" // Generate last names only echo $faker->lastName(); // Output: "Ahmed" echo $faker->lastName('iranian'); // Output: "Karimi"
Specific Origin and Gender Methods
// Arab names echo $faker->arabMale(); // Output: "Tariq Nasr" echo $faker->arabFemale(); // Output: "Maryam Farah" // Iranian names echo $faker->iranianMale(); // Output: "Mehdi Ahmadi" echo $faker->iranianFemale(); // Output: "Zahra Mousavi" // Pakistani names echo $faker->pakistaniMale(); // Output: "Bilal Sheikh" echo $faker->pakistaniFemale(); // Output: "Ayesha Malik" // Indonesian names echo $faker->indonesianMale(); // Output: "Rahman Santoso" echo $faker->indonesianFemale(); // Output: "Fatima Putri" // Malaysian names echo $faker->malaysianMale(); // Output: "Hafiz Abdullah" echo $faker->malaysianFemale(); // Output: "Nur Aisyah" // Bangladeshi names echo $faker->bangladeshiMale(); // Output: "Rashid Hossain" echo $faker->bangladeshiFemale(); // Output: "Ayesha Khadiza" // African names echo $faker->africanMale(); // Output: "Mamadou Diallo" echo $faker->africanFemale(); // Output: "Aminata Fatou"
Laravel Usage
Using the Facade
use MuslimNameFaker; // Generate names $name = MuslimNameFaker::name(); $male = MuslimNameFaker::male(); $female = MuslimNameFaker::female('arab'); $firstName = MuslimNameFaker::firstName('male', 'iranian');
Using Dependency Injection
use MuslimNameFaker\MuslimNameFaker; class UserController extends Controller { public function store(MuslimNameFaker $faker) { $name = $faker->name(); // ... } }
In Laravel Factories
namespace Database\Factories; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use MuslimNameFaker; class UserFactory extends Factory { protected $model = User::class; public function definition() { return [ 'name' => MuslimNameFaker::name(), 'email' => $this->faker->unique()->safeEmail(), 'password' => bcrypt('password'), ]; } }
In Seeders
use Illuminate\Database\Seeder; use App\Models\User; use MuslimNameFaker; class UserSeeder extends Seeder { public function run() { for ($i = 0; $i < 50; $i++) { User::create([ 'name' => MuslimNameFaker::name(), 'email' => "user{$i}@example.com", 'password' => bcrypt('password'), ]); } } }
Helper Functions
The package provides convenient global helper functions:
// General name generation muslim_name(); // Random Muslim name muslim_name('male', 'arab'); // Arab male name muslim_name('female', 'iranian'); // Iranian female name // Gender-specific helpers muslim_name_male(); // Random male name muslim_name_male('pakistani'); // Pakistani male name muslim_name_female(); // Random female name muslim_name_female('arab'); // Arab female name // Origin-specific helpers muslim_name_arab(); // Random Arab name muslim_name_arab('male'); // Arab male name muslim_name_iranian(); // Random Iranian name muslim_name_iranian('female'); // Iranian female name muslim_name_pakistani(); // Random Pakistani name muslim_name_pakistani('male'); // Pakistani male name muslim_name_indonesian(); // Random Indonesian name muslim_name_indonesian('female'); // Indonesian female name muslim_name_malaysian(); // Random Malaysian name muslim_name_malaysian('male'); // Malaysian male name muslim_name_bangladeshi(); // Random Bangladeshi name muslim_name_bangladeshi('female'); // Bangladeshi female name muslim_name_african(); // Random African name muslim_name_african('male'); // African male name // First and last names muslim_first_name(); // Random first name muslim_first_name('female', 'iranian'); // Iranian female first name muslim_last_name(); // Random last name muslim_last_name('pakistani'); // Pakistani last name
Available Methods
Main Methods
| Method | Parameters | Description |
|---|---|---|
name() |
?string $gender, ?string $origin |
Generate any Muslim name |
fullName() |
?string $gender, ?string $origin |
Generate full name (first + last) |
firstName() |
?string $gender, ?string $origin |
Generate first name only |
lastName() |
?string $origin |
Generate last name only |
Gender-Specific Methods
| Method | Parameters | Description |
|---|---|---|
male() |
?string $origin |
Generate male full name |
female() |
?string $origin |
Generate female full name |
maleFirstName() |
?string $origin |
Generate male first name |
femaleFirstName() |
?string $origin |
Generate female first name |
Origin-Specific Methods
| Method | Parameters | Description |
|---|---|---|
arab() |
?string $gender |
Generate Arab name |
iranian() |
?string $gender |
Generate Iranian name |
pakistani() |
?string $gender |
Generate Pakistani name |
indonesian() |
?string $gender |
Generate Indonesian name |
malaysian() |
?string $gender |
Generate Malaysian name |
bangladeshi() |
?string $gender |
Generate Bangladeshi name |
african() |
?string $gender |
Generate African Muslim name |
arabMale() |
- | Generate Arab male name |
arabFemale() |
- | Generate Arab female name |
iranianMale() |
- | Generate Iranian male name |
iranianFemale() |
- | Generate Iranian female name |
pakistaniMale() |
- | Generate Pakistani male name |
pakistaniFemale() |
- | Generate Pakistani female name |
indonesianMale() |
- | Generate Indonesian male name |
indonesianFemale() |
- | Generate Indonesian female name |
malaysianMale() |
- | Generate Malaysian male name |
malaysianFemale() |
- | Generate Malaysian female name |
bangladeshiMale() |
- | Generate Bangladeshi male name |
bangladeshiFemale() |
- | Generate Bangladeshi female name |
africanMale() |
- | Generate African Muslim male name |
africanFemale() |
- | Generate African Muslim female name |
Name Database Statistics
The package includes over 1300 authentic Muslim names:
Arab Names
- Male First Names: 110+
- Female First Names: 115+
- Last Names: 130+
Iranian Names
- Male First Names: 125+
- Female First Names: 100+
- Last Names: 140+
Pakistani Names
- Male First Names: 150+
- Female First Names: 175+
- Last Names: 170+
Indonesian Names
- Male First Names: 65+
- Female First Names: 70+
- Last Names: 85+
Malaysian Names
- Male First Names: 75+
- Female First Names: 80+
- Last Names: 90+
Bangladeshi Names
- Male First Names: 95+
- Female First Names: 105+
- Last Names: 95+
African Muslim Names
- Male First Names: 70+
- Female First Names: 85+
- Last Names: 75+
Testing
Run the test suite:
composer test
Or with PHPUnit directly:
vendor/bin/phpunit
Requirements
- PHP 7.4 or higher
- PHP 8.0, 8.1, 8.2, 8.3 supported
Credits
- Usman Ahmed Malik
- Inspired by Laravel Faker
License
The MIT License (MIT). Please see License File for more information.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Adding More Names
To add more names to the database, edit the following files:
src/Data/MaleNames.php- Male first namessrc/Data/FemaleNames.php- Female first namessrc/Data/LastNames.php- Last/family names
Changelog
Please see CHANGELOG for more information on what has changed recently.
Support
If you discover any issues, please open an issue on GitHub.
Made with ❤️ for the Muslim developer community