mr-wolf-gb / faker-tunisia
Tunisia Faker provider for Laravel
v1.1.0
2025-05-19 13:39 UTC
Requires
- php: ^8.1
- fakerphp/faker: ^1.24
- illuminate/support: ^10.0|^11.0|^12.0
README
A custom Faker provider for generating Tunisian data in multiple locales (fr_TN, en_TN, ar_TN) for Laravel.
Overview
This package provides a custom Faker provider for generating realistic Tunisian data in three locales:
- fr_TN: French transliteration (Arabic data using the French alphabet)
- en_TN: English format (Same names as fr_TN but with English address formats)
- ar_TN: Arabic script (Native Arabic script for all data)
The provider includes generators for:
- Person names (male and female first names, last names)
- Addresses (streets, cities, postal codes, governorates)
- Phone numbers (mobile and landline)
- Company names and details
Installation
You can install the package via composer:
composer require mr-wolf-gb/faker-tunisia
Usage
Basic Usage with Specific Locale
// Create a Faker generator with specific locale $faker = \FakerTunisia\TunisiaFakerFactory::create('fr_TN'); // French transliteration // OR $faker = \FakerTunisia\TunisiaFakerFactory::create('en_TN'); // English format // OR $faker = \FakerTunisia\TunisiaFakerFactory::create('ar_TN'); // Arabic script // Generate data in the selected locale $name = $faker->name; $address = $faker->address; $phone = $faker->phoneNumber; $company = $faker->company;
Mixing Locales
One of the key features of this package is the ability to mix locales for different components:
// Start with a base locale $faker = \FakerTunisia\TunisiaFakerFactory::create('fr_TN'); // Set specific locales for different components $faker->setLocale('ar_TN', 'names'); // Use Arabic script for names $faker->setLocale('en_TN', 'addresses'); // Use English format for addresses // Generate mixed locale data $name = $faker->name; // Arabic script $address = $faker->address; // English format $phone = $faker->phoneNumber; // French format (default) $company = $faker->company; // French format (default)
Available components for mixing:
names
: Person namesaddresses
: Addresses and locationsphones
: Phone numberscompanies
: Company names and details
Available Formatters
Person Data
firstNameMale()
- Generate a male first namefirstNameFemale()
- Generate a female first namelastName()
- Generate a last namename($gender = null)
- Generate a full name
Address Data
streetName()
- Generate a street namebuildingNumber()
- Generate a building numberpostcode()
- Generate a postal code (4 digits)city()
- Generate a city namegovernorate()
- Generate a governorate nameaddress()
- Generate a complete address
Phone Data
mobileNumber()
- Generate a mobile phone numberlandlineNumber()
- Generate a landline phone numberphoneNumber()
- Generate either a mobile or landline number
Company Data
company()
- Generate a company namecompanySuffix()
- Generate a company suffixcompanyPrefix()
- Generate a company prefixcompanyIndustry()
- Generate a company industry
Laravel Integration
The package automatically registers with Laravel through its service provider. Once installed, you can use it in your Laravel application:
// In a Laravel controller or service public function example() { // Default locale (fr_TN) $faker = app('Faker'); // Or specify a locale $faker = \FakerTunisia\TunisiaFakerFactory::create('ar_TN'); // Mix locales if needed $faker->setLocale('en_TN', 'addresses'); return [ 'name' => $faker->name, 'address' => $faker->address, 'phone' => $faker->phoneNumber, 'company' => $faker->company, ]; }
// In Factory class UserFactory extends Factory { public function definition(): array { // Using factory $faker = \FakerTunisia\TunisiaFakerFactory::create('ar_TN'); // Or add as provider $this->faker->addProvider(new \FakerTunisia\FrTunisiaProvider($this->faker)); // $this->faker->addProvider(new \FakerTunisia\EnTunisiaProvider($this->faker)); // $this->faker->addProvider(new \FakerTunisia\ArTunisiaProvider($this->faker)); return [ 'name' => $faker->name, 'address' => $faker->address, 'phone' => $faker->phoneNumber, 'company' => $faker->company, ]; } }
You can also set the default locale in your Laravel configuration:
// config/app.php 'faker_locale' => 'ar_TN',
Examples
French Locale (fr_TN)
Male Name: Marouen Bahloul
Female Name: Syrine Marzougui
Address: Place Ibn Khaldoun 537, 6589 Monastir, Tunisie
Phone: +216 54 01 03 02
Company: Groupe de Bizerte SA
English Locale (en_TN)
Male Name: Nizar Mathlouthi
Female Name: Asma Ben Ali
Address: 454 Paris Boulevard, Zarzis, 1242, Tunisia
Phone: +216 78 03 01 02
Company: Hammami & Makhlouf Inc.
Arabic Locale (ar_TN)
Male Name: مهدي ساسي
Female Name: غفران ماهر
Address: نهج الياسمين 787, الكاف, تونس
Phone: +216 21 01 02 03
Company: قربة التكنولوجيا ش.خ
Mixed Locales
Name (ar_TN): غيث طرابلسي
Address (en_TN): 922 Rue de la République, Bizerte, 6845, Tunisia
Phone (fr_TN): +216 73 02 01 03
Company (fr_TN): Transport de Tunisie SCS
License
MIT
Credits
- Contributors: Manus AI Agent
- Research and data collection: Based on authentic Tunisian sources