使用 JSON 调用 faker

v0.0.18 2023-05-08 14:38 UTC

This package is auto-updated.

Last update: 2024-09-08 17:45:41 UTC


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,
],