mr-wolf-gb / faker-tunisia
Tunisia Faker provider for Laravel
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/mr-wolf-gb/faker-tunisia
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