usmanahmedmalik/muslim-name-faker

Generate realistic Muslim fake names from Arab, Iranian, and Pakistani origins. Works with Laravel or standalone PHP.

Maintainers

Package info

github.com/usmanahmedmalik/muslim-name-faker

pkg:composer/usmanahmedmalik/muslim-name-faker

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-01-31 21:48 UTC

This package is not auto-updated.

Last update: 2026-03-29 21:13:15 UTC


README

Latest Version on Packagist Total Downloads

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

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 names
  • src/Data/FemaleNames.php - Female first names
  • src/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