fakerphp/faker

Faker 是一个 PHP 库,用于生成假数据。

维护者

详细信息

github.com/FakerPHP/Faker

源代码

问题

安装量: 207,615,924

依赖项: 2,611

建议者: 44

安全性: 0

星标: 3,551

关注者: 25

分支: 3,573

公开问题: 49

v1.23.1 2024-01-02 13:46 UTC

README

Social card of FakerPHP

Faker

Packagist Downloads GitHub Workflow Status Type Coverage Code Coverage

Faker 是一个 PHP 库,用于生成假数据。无论是需要启动数据库、创建好看的 XML 文档、填充持久化数据以进行压力测试,还是匿名化从生产服务中获取的数据,Faker 都适用。

它深受 Perl 的 Data::Faker 和 Ruby 的 Faker 启发。

入门指南

安装

Faker 需要 PHP >= 7.4。

composer require fakerphp/faker

文档

完整文档可以在 fakerphp.github.io 找到。

基本用法

使用 Faker\Factory::create() 创建并初始化 Faker 生成器,可以通过访问以数据类型命名的方法来生成数据。

<?php

declare(strict_types=1);

require_once 'vendor/autoload.php';

// use the factory to create a Faker\Generator instance
$faker = Faker\Factory::create();
// generate data by calling methods
echo $faker->name();
// 'Vince Sporer'
echo $faker->email();
// '[email protected]'
echo $faker->text();
// 'Numquam ut mollitia at consequuntur inventore dolorem.'

每次调用 $faker->name() 都会产生不同的(随机)结果。这是因为 Faker 使用了 __call() 魔术方法,并将 Faker\Generator->$method() 调用转发到 Faker\Generator->format($method, $attributes)

<?php

declare(strict_types=1);

for ($i = 0; $i < 3; $i++) {
    echo $faker->name() . "\n";
}

// 'Cyrus Boyle'
// 'Alena Cummerata'
// 'Orlo Bergstrom'

自动重构

如果您已经使用此库的属性,它们现在已被弃用,需要用等效的方法替换。

您可以使用提供的 Rector 配置文件来自动化工作。

运行

composer require --dev rector/rector

以安装 rector/rector

运行

vendor/bin/rector process src/ --config vendor/fakerphp/faker/rector-migrate.php

以运行 rector/rector

注意:不要忘记将 src/ 替换为您源目录的路径。

或者,将配置导入您的 rector.php 文件

<?php

declare(strict_types=1);

use Rector\Config;

return static function (Config\RectorConfig $rectorConfig): void {
    $rectorConfig->import('vendor/fakerphp/faker/rector-migrate.php');
};

许可证

Faker 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE

PHP 版本支持策略

此包的维护者在其初始发布后添加对 PHP 版本的支持,并在该版本达到安全支持结束时一年后停止支持。

向后兼容性承诺

Faker 使用 Semver。这意味着版本被标记为 MAJOR.MINOR.PATCH。只有新的主要版本允许打破向后兼容性(BC)。

标记为 @experimental@internal 的类不包括在我们的向后兼容性承诺中。您也不能保证方法返回的值始终相同。您保证数据类型不会更改。

PHP 8 引入了 命名参数,这增加了包维护者的成本并减少了灵活性。Faker 中方法参数的名称不包括在我们的 BC 承诺中。