titustum/kenyan-faker-provider 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

titustum/kenyan-faker-provider

最新稳定版本:v1.0.3

Composer 安装命令:

composer require titustum/kenyan-faker-provider

包简介

Kenyan-specific Faker provider for Laravel and PHP Faker

README 文档

README

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

📦 Installation

A. Using Composer

composer require titustum/kenyan-faker-provider --dev

Make sure fakerphp/faker is also installed (Laravel includes it by default).

🚀 Usage

A. In a Laravel Seeder (Recommended)

You can load the Kenyan Faker providers manually or rely on locale auto-loading.

1. Manual Registration of Providers

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"
      ]);

    }
}

B. Using the Kenyan Locale (en_KE)

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.

C. Quick Examples (All Providers)

Person

$faker->name();          // "Mary Wanjiku"
$faker->firstName();     // "Amina"
$faker->lastName();      // "Mutua"

Phone Number

$faker->phoneNumber();   // "0722 654 321"
$faker->mobileNumber();  // "0798 123 456"

Address

$faker->county();        // "Kiambu"
$faker->town();          // "Thika"
$faker->postalCode();    // "01000"
$faker->address();       // "Thika, Kiambu 01000"

Company

$faker->company();       // "Rift Valley Traders Ltd"
$faker->companySuffix(); // "Enterprises"

Payment (MPESA)

$faker->mpesaPaybill();  // "345678"
$faker->mpesaTill();     // "923456"

Internet

$faker->email();         // "kevin.kiprotich@kenya.co.ke"
$faker->domainName();    // "nairobitech.co.ke"
$faker->userName();      // "wanjiku.m"

This will automatically use the Faker\Provider\en_KE providers if they're properly autoloaded.

🧩 Features

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

⚙️ Laravel Auto-Discovery

This package supports Laravel auto-discovery via KenyaFaker\Laravel\KenyanFakerServiceProvider.

🛠 Local Development Setup

To test locally in another Laravel app:

  1. Clone this repo:

    git clone https://github.com/titustum/kenyan-faker-provider.git
  2. In your Laravel app composer.json:

"repositories": [
  {
    "type": "path",
    "url": "../path-to/kenyan-faker-provider"
  }
]
  1. Require the package:
composer require titustum/kenyan-faker-provider --dev

✍️ Author

Titus Tum 📧 tituskiptanuitum@gmail.com 🔗 GitHub: @titustum

📄 License

This package is open-sourced software licensed under the MIT license.

🙌 Contributing

Pull requests are welcome! Feel free to submit bug fixes, new providers, or improved datasets.

🌍 Roadmap

  • 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

⭐️ Why Use This?

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.

统计信息

  • 总下载量: 19
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-09-14