PHPackages                             cupidontech/multi-faker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. cupidontech/multi-faker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

cupidontech/multi-faker
=======================

Package for generating Faker by country

v1.4.0(1mo ago)41142MITPHPPHP ^7.4 || ^8.0

Since Jun 10Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Dilane05/multi-faker)[ Packagist](https://packagist.org/packages/cupidontech/multi-faker)[ Docs](https://github.com/Dilane05/multi-faker)[ RSS](/packages/cupidontech-multi-faker/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (4)Dependencies (3)Versions (19)Used By (0)

multi-faker
===========

[](#multi-faker)

**The missing Faker locale for Africa.**

Generate realistic fake data for African and international applications.

```
use Cupidontech\MultiFaker\MultiFakerGenerator;

$faker = new MultiFakerGenerator('Cameroon');

echo $faker->name();     // Jean Baptiste Ndzié
echo $faker->phone();    // +237 677 123 456
echo $faker->address();  // Bonamoussadi, Douala
```

[![Tests](https://github.com/Dilane05/multi-faker/actions/workflows/tests.yml/badge.svg)](https://github.com/Dilane05/multi-faker/actions/workflows/tests.yml)[![Latest Version on Packagist](https://camo.githubusercontent.com/e3cdc61790bf2b040515bd0b880617c0b89ce5b541c4a184411ab00cc3c4d1f7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f63757069646f6e746563682f6d756c74692d66616b6572)](https://packagist.org/packages/cupidontech/multi-faker)[![Total Downloads](https://camo.githubusercontent.com/5ff9bfeb2342cb920ff51d3693b61eda4ad16c5bf12e86d67105cbd5b9fc4f0f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f63757069646f6e746563682f6d756c74692d66616b6572)](https://packagist.org/packages/cupidontech/multi-faker)[![PHP Version](https://camo.githubusercontent.com/11b37faffb3d67e179f0a6bcd16cacab69a02fb26e08ad68fd952ff86d0c9ebf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f63757069646f6e746563682f6d756c74692d66616b6572)](https://packagist.org/packages/cupidontech/multi-faker)[![GitHub License](https://camo.githubusercontent.com/80fbc63a36566ffc291669151c6311a85b76274f980ddd6dd0c1b442dc2255e6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f44696c616e6530352f6d756c74692d66616b6572)](LICENSE.md)

---

Table of Contents
-----------------

[](#table-of-contents)

- [The Problem](#the-problem)
- [FakerPHP vs multi-faker](#fakephp-vs-multi-faker)
- [Supported Countries](#supported-countries)
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Example Output](#example-output)
- [Available Methods](#available-methods)
- [Roadmap](#roadmap)
- [Contributions](#contributions)
- [License](#license)

---

The Problem
-----------

[](#the-problem)

FakerPHP supports many locales but provides no realistic datasets for most African countries.

CountryFakerPHPmulti-fakerCameroon❌✅Senegal❌✅Ivory Coast❌✅NigeriaLimited✅South AfricaLimited✅France✅✅USA✅✅As a result, developers often seed African applications with unrealistic names, cities, and phone numbers. multi-faker solves this with country-specific generators built from real local datasets.

---

FakerPHP vs multi-faker
-----------------------

[](#fakerphp-vs-multi-faker)

FeatureFakerPHPmulti-fakerLocal names❌ (for Africa)✅Local phone formats❌✅Local regions❌✅Local cities❌✅GPS coordinates❌✅Switch country at runtime❌✅Laravel integration✅✅---

Supported Countries
-------------------

[](#supported-countries)

CountryKey🇨🇲 Cameroon`Cameroon`🇨🇮 Ivory Coast`IvoryCoast`🇳🇬 Nigeria`Nigeria`🇸🇳 Senegal`Senegal`🇿🇦 South Africa`SouthAfrica`🇨🇦 Canada`Canada`🇺🇸 United States`UnitedStates`🇫🇷 France`France`🇩🇪 Germany`Germany`---

Features
--------

[](#features)

FeatureSupportedFirst &amp; last names✅Full names &amp; usernames✅Email addresses✅Phone numbers (local format)✅Addresses✅Regions &amp; cities✅GPS coordinates✅Company names✅Products &amp; food items✅Dates✅Passwords &amp; credit cards✅Random text✅Mobile money / payments✅---

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 9, 10, or 11 (optional — works standalone too)

---

Installation
------------

[](#installation)

```
composer require cupidontech/multi-faker
```

Laravel auto-discovers the service provider. For older versions of Laravel, add it manually in `config/app.php`:

```
'providers' => [
    Cupidontech\MultiFaker\MultiFakerServiceProvider::class,
],
```

---

Configuration
-------------

[](#configuration)

Set the default country in your `.env` file:

```
MULTI_FAKER_DEFAULT_COUNTRY=Cameroon
```

Accepted values: `Cameroon`, `IvoryCoast`, `Nigeria`, `Senegal`, `SouthAfrica`, `Canada`, `UnitedStates`, `France`, `Germany`.

---

Usage
-----

[](#usage)

### Standalone

[](#standalone)

```
use Cupidontech\MultiFaker\MultiFakerGenerator;

$faker = new MultiFakerGenerator('Cameroon');

echo $faker->first_name();  // e.g. "Amina"
echo $faker->phone();       // e.g. "+237 655 123 456"
echo $faker->email();       // e.g. "amina.nkou@gmail.com"
```

### Laravel (dependency injection)

[](#laravel-dependency-injection)

```
namespace App\Http\Controllers;

use Cupidontech\MultiFaker\MultiFakerGenerator;

class SeedController extends Controller
{
    public function generate(MultiFakerGenerator $faker)
    {
        return [
            'name'    => $faker->first_name() . ' ' . $faker->last_name(),
            'email'   => $faker->email(),
            'phone'   => $faker->phone(),
            'address' => $faker->address(),
        ];
    }
}
```

### Laravel Seeder

[](#laravel-seeder)

```
use Cupidontech\MultiFaker\MultiFakerGenerator;

$faker = new MultiFakerGenerator('Senegal');

User::factory()->count(100)->create([
    'name'  => $faker->name(),
    'phone' => $faker->phone(),
    'city'  => $faker->cities(),
]);
```

### Switching country at runtime

[](#switching-country-at-runtime)

```
$faker = new MultiFakerGenerator('Nigeria');
echo $faker->first_name(); // Nigerian first name

$faker = new MultiFakerGenerator('France');
echo $faker->first_name(); // French first name
```

---

Example Output
--------------

[](#example-output)

### 🇨🇲 Cameroon

[](#-cameroon)

```
name()      → Jean Baptiste Ndzié
phone()     → +237 677 123 456
address()   → Bonamoussadi, Douala
region()    → Littoral
city()      → Bafoussam
email()     → jean.ndzié@gmail.com

```

### 🇸🇳 Senegal

[](#-senegal)

```
name()      → Mamadou Diop
phone()     → +221 77 123 45 67
region()    → Dakar
city()      → Thiès

```

### 🇳🇬 Nigeria

[](#-nigeria)

```
name()      → Chukwuemeka Obi
phone()     → +234 803 123 4567
region()    → Lagos
city()      → Abuja

```

---

Available Methods
-----------------

[](#available-methods)

All generators implement the same interface, regardless of country.

```
// Identity
$faker->first_name();
$faker->last_name();
$faker->name();           // full name
$faker->username();       // e.g. "aminankou742"
$faker->gender();         // "Male" or "Female"

// Contact
$faker->email();
$faker->phone();

// Location
$faker->address();
$faker->region();
$faker->city($region);    // city in the given region
$faker->cities();         // random city from all regions
$faker->coordinates();    // ['latitude' => ..., 'longitude' => ...]

// Date & security
$faker->date();                              // default: last 30 years
$faker->date('-10 years', 'now', 'd/m/Y');  // custom range & format
$faker->password();
$faker->creditCardNumber();

// Business & content
$faker->companyName();
$faker->product();
$faker->food();
$faker->text(100);        // random text of given length

// Mobile money & payments
$faker->orangeMoneyNumber();        // mobile money phone number for the country
$faker->orangeMoneyTransactionId(); // transaction reference (e.g. "OM237260610001234")
$faker->orangeMoneyBalance();       // balance as int in local currency
```

The mobile money methods are contextual — they use the dominant payment platform per country:

CountryPlatform🇨🇲 CameroonOrange Money CM🇨🇮 Ivory CoastOrange Money CI🇸🇳 SenegalOrange Money SN🇳🇬 NigeriaMTN MoMo🇿🇦 South AfricaMTN MoMo SA🇨🇦 CanadaInterac e-Transfer🇺🇸 United StatesVenmo / CashApp🇫🇷 FranceOrange Bank🇩🇪 GermanyPayPal / Klarna---

Roadmap
-------

[](#roadmap)

- 🇨🇲 Cameroon
- 🇨🇮 Ivory Coast
- 🇳🇬 Nigeria
- 🇸🇳 Senegal
- 🇿🇦 South Africa
- 🇫🇷 France
- 🇨🇦 Canada
- 🇺🇸 United States
- 🇩🇪 Germany
- 🇨🇬 Congo
- 🇬🇦 Gabon
- 🇧🇯 Benin
- 🇹🇬 Togo
- 🇧🇫 Burkina Faso
- 🇲🇱 Mali
- 🇬🇭 Ghana
- 🇰🇪 Kenya

---

Contributions
-------------

[](#contributions)

We welcome contributions. Please follow the git flow below:

1. Fork the repository and clone it locally.
2. Create a feature branch from `dev`: `git checkout -b feature/my-feature dev`
3. Write your code and tests, then commit.
4. Push your branch and open a pull request **targeting `dev`**.
5. Once reviewed and merged to `dev`, a maintainer will cut a release to `main`.

To add a new country, see the [CLAUDE.md](CLAUDE.md) guide.

---

License
-------

[](#license)

Distributed under the [MIT](LICENSE.md) license.

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance50

Moderate activity, may be stable

Popularity17

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 57.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~250 days

Total

5

Last Release

56d ago

PHP version history (2 changes)1.0.0PHP ^5.3.3 || ^7.0 || ^8.0

1.1.0PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/104624430?v=4)[DILANE TAPTUE](/maintainers/Dilane05)[@Dilane05](https://github.com/Dilane05)

---

Top Contributors

[![Fotsingboris](https://avatars.githubusercontent.com/u/103468814?v=4)](https://github.com/Fotsingboris "Fotsingboris (4 commits)")[![Dilane05](https://avatars.githubusercontent.com/u/104624430?v=4)](https://github.com/Dilane05 "Dilane05 (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cupidontech-multi-faker/health.svg)

```
[![Health](https://phpackages.com/badges/cupidontech-multi-faker/health.svg)](https://phpackages.com/packages/cupidontech-multi-faker)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M353](/packages/psalm-plugin-laravel)[illuminate/pagination

The Illuminate Pagination package.

12234.6M1.1k](/packages/illuminate-pagination)[illuminate/pipeline

The Illuminate Pipeline package.

9350.2M303](/packages/illuminate-pipeline)[illuminate/redis

The Illuminate Redis package.

8314.8M398](/packages/illuminate-redis)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[illuminate/cookie

The Illuminate Cookie package.

224.7M141](/packages/illuminate-cookie)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
