Kenyan-specific locale data for Faker, designed for use with PHP applications and Laravel projects.
This package adds support for realistic Kenyan:
- Person names (including Christian & Islamic names)
- Phone numbers (Safaricom, Airtel, etc.)
- Addresses
- Counties, Towns & Cities
- Companies, Payments, and more
📦 Package:
titustum/kenyan-faker-provider
🇰🇪 Locale:en_KE
composer require titustum/kenyan-faker-provider --devMake sure
fakerphp/fakeris also installed (Laravel includes it by default).
You can load the Kenyan Faker providers manually or rely on locale auto-loading.
use Faker\Factory as Faker;
class UsersTableSeeder extends Seeder
{
public function run()
{
$faker = Faker::create();
// Register Kenyan providers
$faker->addProvider(new \KenyaFaker\Provider\en_KE\Person($faker));
$faker->addProvider(new \KenyaFaker\Provider\en_KE\PhoneNumber($faker));
$faker->addProvider(new \KenyaFaker\Provider\en_KE\Address($faker));
$faker->addProvider(new \KenyaFaker\Provider\en_KE\Company($faker));
$faker->addProvider(new \KenyaFaker\Provider\en_KE\Payment($faker));
$faker->addProvider(new \KenyaFaker\Provider\en_KE\Internet($faker));
DB::table('users')->insert([
'name' => $faker->name('male'), // e.g. "James Kiprotich"
'email' => $faker->email(), // e.g. "j.kiprotich@example.co.ke"
'phone' => $faker->phoneNumber(), // e.g. "0722 456 789"
'county' => $faker->county(), // e.g. "Uasin Gishu"
'town' => $faker->town(), // e.g. "Kakamega"
'city' => $faker->city(), // e.g. "Garissa"
'address' => $faker->address(), // e.g. "Eldoret, Uasin Gishu 30100"
'company' => $faker->company(), // e.g. "Kilimanjaro Supplies Ltd"
'mpesa_till' => $faker->mpesaTill(), // e.g. "923456"
]);
}
}If you follow standard Faker locale conventions, you can load all providers automatically:
$faker = Faker::create('en_KE');
echo $faker->name(); // e.g., "Brian Kiptoo"
echo $faker->phoneNumber(); // e.g., "0722 123 456"
echo $faker->county(); // e.g., "Nairobi"
echo $faker->town(); // e.g., "Nakuru"
echo $faker->city(); // e.g., "Nyeri"
echo $faker->company(); // e.g., "Kilimanjaro Logistics Ltd"
echo $faker->mpesaPaybill(); // e.g., "123456"
echo $faker->email(); // e.g., "mary.wanjiru@example.co.ke"No manual provider registration required — Laravel auto-discovers the package.
$faker->name(); // "Mary Wanjiku"
$faker->firstName(); // "Amina"
$faker->lastName(); // "Mutua"$faker->phoneNumber(); // "0722 654 321"
$faker->mobileNumber(); // "0798 123 456"$faker->county(); // "Kiambu"
$faker->town(); // "Thika"
$faker->postalCode(); // "01000"
$faker->address(); // "Thika, Kiambu 01000"$faker->company(); // "Rift Valley Traders Ltd"
$faker->companySuffix(); // "Enterprises"$faker->mpesaPaybill(); // "345678"
$faker->mpesaTill(); // "923456"$faker->email(); // "kevin.kiprotich@kenya.co.ke"
$faker->domainName(); // "nairobitech.co.ke"
$faker->userName(); // "wanjiku.m"This will automatically use the
Faker\Provider\en_KEproviders if they're properly autoloaded.
| Provider | Status | Description |
|---|---|---|
Person.php |
✅ Ready | Kenyan male/female first & last names |
PhoneNumber.php |
✅ Ready | Kenyan mobile phone numbers (Safaricom, Airtel) |
Address.php |
✅ Ready | Kenyan counties, towns, postal codes |
Company.php |
✅ Ready | Local business suffixes and names |
Payment.php |
✅ Ready | Mock MPESA Paybill, Till numbers |
This package supports Laravel auto-discovery via KenyaFaker\Laravel\KenyanFakerServiceProvider.
To test locally in another Laravel app:
-
Clone this repo:
git clone https://github.com/titustum/kenyan-faker-provider.git
-
In your Laravel app
composer.json:
"repositories": [
{
"type": "path",
"url": "../path-to/kenyan-faker-provider"
}
]- Require the package:
composer require titustum/kenyan-faker-provider --devTitus Tum 📧 tituskiptanuitum@gmail.com 🔗 GitHub: @titustum
This package is open-sourced software licensed under the MIT license.
Pull requests are welcome! Feel free to submit bug fixes, new providers, or improved datasets.
- Person names (Christian, Muslim, regional)
- Phone numbers (Safaricom, Airtel, Telkom)
- Address data (Counties, Sub-counties, P.O. Boxes)
- Company data
- Payment providers (MPESA, Airtel Money, etc.)
- Add reginal/tribal based names
Laravel projects targeting Kenya often lack realistic seed data. This package brings localized names, phone numbers, and business data so your app looks and behaves closer to real-world usage in Kenya.