avto-dev/faker-providers

扩展的 faker 包提供者

v3.8.0 2024-08-23 10:53 UTC

This package is auto-updated.

Last update: 2024-09-23 11:12:18 UTC


README

Laravel

fakerphp/faker 提供额外提供者

Version PHP Version Build Status Coverage Downloads count License

此包为 faker 包提供了一组额外的提供者。同时,它还为 Laravel 框架提供了服务提供者。

安装

使用以下命令使用 composer 安装此包

$ composer require --dev avto-dev/faker-providers "^3.2"

需要安装 composer如何安装 composer)。

您需要修复包的主版本。

Laravel 集成

安装后,您可以使用以下命令 "发布" 配置文件(./config/faker.php

$ ./artisan vendor:publish --provider="AvtoDev\FakerProviders\Frameworks\Laravel\ServiceProvider"

如果需要,您可以在 ./config/faker.php 配置文件中添加任何额外的 faker 提供者

用法

对于使用提供者,您必须首先注册它们

<?php

use Faker\Generator as FakerGenerator;
use AvtoDev\FakerProviders\ExtendedFaker;

/** @var FakerGenerator|ExtendedFaker $faker */
$faker    = new FakerGenerator;
$provider = \AvtoDev\FakerProviders\Providers\Cars\MarkAndModelProvider::class;
$faker->addProvider(new $provider($faker));

echo $faker->carMarkAndModel; // BMW X3

如果您在 Laravel 应用程序中使用此包,则所有提供者将自动注册。然后您可以使用所有提供的方法,例如在模型工厂中

<?php // File: ./database/factories/CarFactory.php

use App\Models\Car;
use Faker\Generator as Faker;
use Illuminate\Database\Eloquent\Factory as EloquentFactory;

/** @var EloquentFactory $factory */
$factory->define(Car::class, function (Faker $faker) {
    /** @var Faker|\AvtoDev\FakerProviders\ExtendedFaker $faker */
    return [
        'vin'   => $faker->vinCode,
        'mark'  => $mark = $faker->carMark,
        'model' => $faker->carModel($mark),
    ];
});

注释 /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */ 是正确类型提示所必需的

提供者

所有提供者位于 AvtoDev\FakerProviders\Providers 命名空间中。

Cars\MarkAndModelProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->carMarkAndModel;   // Skoda Octavia
$faker->carMark;           // Daewoo
$faker->carModel;          // Juke
$faker->carModel('Honda'); // Civic Type R
$faker->carGeneration;     // IV Restyling

Identifiers\BodyProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->bodyCode;        // ILМ842 6262494
$faker->invalidBodyCode; // 246553

Identifiers\ChassisProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->chassisCode;        // СM3654637018
$faker->invalidChassisCode; // 20567820000000000

Identifiers\GrzProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->grzCode;        // Х133АМ02
$faker->invalidGrzCode; // У777

Identifiers\PtsProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->ptsCode;        // 80 30 518523
$faker->invalidPtsCode; // 67ОМ3760020

Identifiers\StsProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->stsCode;        // 98РА409963
$faker->invalidStsCode; // 47 77 6580290

Identifiers\VinProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->vinCode;        // LPFT634A62NV25411
$faker->invalidVinCode; // 728GY9PAGGSH443220

Identifiers\DriverLicenseNumberProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->driverLicenseNumber;        // 66 ВС 167633
$faker->invalidDriverLicenseNumber; // 6802О3

Identifiers\InnAndKppProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->innCode();        // 6449013711 500100732259
$faker->shortInnCode();   // 3664069397
$faker->longInnCode();    // 500100732259
$faker->validInnCode();   // 6449013711
$faker->invalidInnCode(); // 6449013712
$faker->kppCode();        // 644901371
$faker->validKppCode();   // 773301001 7733AZ001
$faker->invalidKppCode(); // 7733010011 77330100Z

Identifiers\CadastralNumberProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->cadastralNumber();        // 66:41:153222:68
$faker->validCadastralNumber();   // 77:22:5874698:1
$faker->invalidCadastralNumber(); // 879:404:313:446

Packages\IDEntityProvider

为此需要 avto-dev/identity-laravel 包。

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->idEntity('VIN'); // object:TypedIDEntityInterface (type 'VIN')
$faker->idEntity;        // object:TypedIDEntityInterface (random type)

User\AvatarUriProvider

<?php /** @var \Faker\Generator|\AvtoDev\FakerProviders\ExtendedFaker $faker */

$faker->userAvatarUri('Bill Gates', 200, 200); // Link to the some user avatar

示例

测试

对于包测试,我们使用 phpunit 框架和 docker-ce + docker-compose 作为开发环境。因此,在克隆存储库后在终端中写入

$ make build
$ make latest # or 'make lowest'
$ make test

更改日志

Release date Commits since latest release

更改日志可以在这里找到

支持

Issues Issues

如果您发现任何包错误,请在当前存储库中 创建问题

许可

这是一个开源软件,许可协议为 MIT 许可