使用 JSON 调用 faker
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
使用 JSON 调用 FakerPHP/Faker faker 格式化器。
JSON 格式如下:
{ "method": "numberBetween", "parameters": { "min": 20, "max": 30 } }
此 JSON 将调用 faker 方法如下:
$faker = Faker\Factory::create(); $faker->numberBetween(20, 30);
安装
composer require kent013/faker-json
使用
调用 faker 方法
// 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
调用带有地区设置的 faker 方法
$fakerFormatter = FakerFormatter::instance() ->locale('en_HK') ->method('direction'); $result = FakerJson::call($fakerFormatter); $this->assertIsString($result);
获取格式化器定义
作为数组
FakerFormatterDefinition::listDefinitions()
作为 JSON
FakerJson::formatterDefinitionsAsJson();
获取格式化器地区
作为数组
FakerFormatterDefinition::listLocales()
作为 JSON
FakerJson::formatterLocalesAsJson();
加载第三方提供者
要加载第三方提供者以生成值,请在使用提供者之前调用 addProvider。
FakerJson::addProvider(PHPFakerUtil::class);
特别是在 Laravel 中,创建 FakerJsonServiceProvider
并将其添加到 app.provider
配置中
<?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, ],