kent013 / faker-json
Call faker with json
v0.0.18
2023-05-08 14:38 UTC
Requires
- php: ^8.0.2
- fakerphp/faker: ^1.20
- haydenpierce/class-finder: ^0.4.4
- phpstan/phpdoc-parser: ^1.16
- webmozart/assert: ^1.11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- phpstan/extension-installer: ^1.2
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^9.5
README
Call FakerPHP/Faker faker formatter with JSON.
The JSON is looks like,
{ "method": "numberBetween", "parameters": { "min": 20, "max": 30 } }
This json will call faker method as
$faker = Faker\Factory::create(); $faker->numberBetween(20, 30);
Installation
composer require kent013/faker-json
Usage
Call faker method
// same as {"faker_json":true,"method":"numberBetween","parameters":{"min":20,"max":30}} $json = FakerFormatter::instance() ->method('numberBetween') ->addParameter('min', 20) ->addParameter('max', 30)->toJson(); $fakerFormatter = FakerFormatter::fromJson($json); $result = FakerJson::call($fakerFormatter); // result is number between 20 and 30
Call faker method with locale
$fakerFormatter = FakerFormatter::instance() ->locale('en_HK') ->method('direction'); $result = FakerJson::call($fakerFormatter); $this->assertIsString($result);
get formatter definitions
as array
FakerFormatterDefinition::listDefinitions()
as json
FakerJson::formatterDefinitionsAsJson();
get formatter locales
as array
FakerFormatterDefinition::listLocales()
as json
FakerJson::formatterLocalesAsJson();
Load third party providers
To load third party providers to generate value, call addProvider prior to use the provider.
FakerJson::addProvider(PHPFakerUtil::class);
Especially in Laravel, create FakerJsonServiceProvider
and add it to app.provider
config
<?php declare(strict_types=1); namespace App\Providers; use Faker\Provider\PHPFakerUtil; use FakerJson\FakerJson; use Illuminate\Support\ServiceProvider; class FakerJsonServiceProvider extends ServiceProvider { /** * Register services. */ public function register(): void { } /** * Bootstrap services. */ public function boot(): void { FakerJson::addProvider(PHPFakerUtil::class); } }
config/app.php
'providers' => [ // ... App\Providers\FakerJsonServiceProvider::class, ],