mmo / faker-cli
Faker PHP 库的命令行命令。
Requires
- php: ^8.0
- fakerphp/faker: ^1.19
- symfony/console: ~3.4|^4.0|^5.0|~6.0
Requires (Dev)
- g1a/composer-test-scenarios: ^3.2
- phpunit/phpunit: ^9.5
Suggests
- ext-dom: *
Replaces
- bit3/faker-cli: ^1.4
This package is auto-updated.
Last update: 2024-09-10 16:27:25 UTC
README
该项目是 bit3archive/faker-cli 的分支,该分支不再维护 - 见 评论
Faker 是一个 PHP 库,可以为你生成假数据。这是一个用于静态方式轻松生成假数据的命令行工具。
使用方法
作为 Phar(推荐)
您可以在 发布页面 上找到最新版本的 Phar。
$ wget https://github.com/morawskim/faker-cli/releases/download/2.0.0/faker.phar chmod +x ./faker.phar $ ./faker.phar
作为 Composer 安装
$ composer create-project mmo/faker-cli
$ cd faker-cli
$ ./bin/faker.php
参数和参数
$ ./bin/faker.php
--locale (-l) # The locale to used. (default: "en_US")
--seed (-s) # The generators seed.
--pattern (-p) # The printf pattern. (default: "%s")
--delimiter (-d) # The delimiter is used by the csv and printf format.
--enclosure (-e) # The enclosure is used by the csv and printf format.
--escape (-E) # The escape character is used by the printf format. (default: "\\")
--format (-f) # The output format (json, xml, csv, php, printf, vprintf) (default: "printf")
--count (-c) # The count of generated data. (default: 1)
<type> # The data type to generate (e.g. "randomDigit", "words", "name", "city")
<args1>..<argsN> # Arguments for the type, e.g. "words 5" will generate 5 words.
单值生成器示例
$ ./bin/faker.php word
culpa
consequatur
quisquam
recusandae
asperiores
accusamus
nihil
repellat
vero
omnis
多值生成器示例
$ ./bin/faker.php --count 5 words 2
culpa,consequatur
quisquam,recusandae
asperiores,accusamus
nihil,repellat
vero,omnis
输出格式
您可以通过定义 --format
选项来使用不同的输出格式。默认格式为 JSON。
JSON 输出
$ ./bin/faker.php word
[
"culpa",
"consequatur",
"quisquam",
"recusandae",
"asperiores",
"accusamus",
"nihil",
"repellat",
"vero",
"omnis"
]
$ ./bin/faker.php --count 5 words 2
[
[
"culpa",
"consequatur"
],
[
"quisquam",
"recusandae"
],
[
"asperiores",
"accusamus"
],
[
"nihil",
"repellat"
],
[
"vero",
"omnis"
]
]
XML 输出
$ ./bin/faker.php --format xml word
<?xml version="1.0"?>
<array>
<item>culpa</item>
<item>consequatur</item>
<item>quisquam</item>
<item>recusandae</item>
<item>asperiores</item>
<item>accusamus</item>
<item>nihil</item>
<item>repellat</item>
<item>vero</item>
<item>omnis</item>
</array>
CSV 输出
$ ./bin/faker.php --format csv word
culpa
consequatur
quisquam
recusandae
asperiores
accusamus
nihil
repellat
vero
omnis
PHP 输出
$ ./bin/faker.php --format php word
array (
0 => 'culpa',
1 => 'consequatur',
2 => 'quisquam',
3 => 'recusandae',
4 => 'asperiores',
5 => 'accusamus',
6 => 'nihil',
7 => 'repellat',
8 => 'vero',
9 => 'omnis',
)
printf 和 vprintf 输出
printf 和 vprintf 输出大致相同。但是 printf
是为单值生成器类型设计的,例如 safeEmail
,而 vprintf
是为多值生成器类型设计的,例如 words 5
。
$ ./bin/faker.php --format printf \
--pattern "INSERT INTO emails (uuid, email) VALUES (UUID(), %s);" \
--enclosure "'" \
safeEmail
INSERT INTO emails (uuid, email) VALUES (UUID(), 'dbednar@example.com');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'xhettinger@example.net');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'gerald62@example.org');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'miles91@example.com');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'to\'conner@example.com');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'bridgette.runolfsdottir@example.com');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'fgoldner@example.org');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'grimes.leo@example.org');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'lilian.reynolds@example.net');
INSERT INTO emails (uuid, email) VALUES (UUID(), 'ratke.darlene@example.net');
./bin/faker.php --format vprintf \
--pattern "INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), %s, %s, %s);" \
--enclosure "'" \
words 3
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'est', 'illo', 'consequuntur');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'dolorem', 'temporibus', 'commodi');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'sint', 'reiciendis', 'sint');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'sunt', 'eum', 'id');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'tempora', 'rerum', 'occaecati');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'corrupti', 'impedit', 'doloribus');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'amet', 'consectetur', 'repudiandae');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'est', 'id', 'amet');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'odio', 'facere', 'nesciunt');
INSERT INTO keywords (uuid, keyword1, keyword2, keyword3) VALUES (UUID(), 'voluptas', 'quia', 'rerum');
您还可以使用多值生成器类型与 printf
一起使用,它们将由默认的 --delimiter
字符(逗号)连接。
$ ./bin/faker.php --format printf \
--pattern "INSERT INTO words (uuid, words) VALUES (UUID(), %s);" \
--delimiter ' / ' \
--enclosure "'" \
words 10
INSERT INTO words (uuid, words) VALUES (UUID(), 'est / illo / consequuntur / dolorem / temporibus / commodi / sint / reiciendis / sint / sunt');
INSERT INTO words (uuid, words) VALUES (UUID(), 'eum / id / tempora / rerum / occaecati / corrupti / impedit / doloribus / amet / consectetur');
INSERT INTO words (uuid, words) VALUES (UUID(), 'repudiandae / est / id / amet / odio / facere / nesciunt / voluptas / quia / rerum');
INSERT INTO words (uuid, words) VALUES (UUID(), 'ad / sed / esse / sed / exercitationem / sed / et / rem / esse / excepturi');
INSERT INTO words (uuid, words) VALUES (UUID(), 'animi / minus / qui / perferendis / quo / repudiandae / aliquam / dolorem / voluptas / fugiat');
INSERT INTO words (uuid, words) VALUES (UUID(), 'at / odit / dolorem / a / aperiam / dignissimos / ipsa / sunt / consequatur / alias');
INSERT INTO words (uuid, words) VALUES (UUID(), 'accusantium / voluptatum / autem / nobis / cumque / neque / modi / iure / voluptatem / error');
INSERT INTO words (uuid, words) VALUES (UUID(), 'molestiae / consequatur / alias / eligendi / corrupti / illum / commodi / molestiae / aut / repellat');
INSERT INTO words (uuid, words) VALUES (UUID(), 'id / quisquam / et / sit / consequuntur / aut / et / ullam / asperiores / molestiae');
INSERT INTO words (uuid, words) VALUES (UUID(), 'cupiditate / culpa / voluptatem / et / mollitia / dolor / sit / nisi / praesentium / qui');
建议使用 --enclosure
选项。每个 --enclosure
字符的出现都将使用默认的 --escape
字符(反斜杠)进行转义。
完成
目前仅支持 bash。您的 faker-cli.php
或 faker.phar
必须在您的 PATH
环境中。
Phar
您必须在某个位置下载 https://raw.githubusercontent.com/morawskim/faker-cli/master/completions/bash_completion.sh
,然后在 .bashrc
中使用此文件。
source DOWNLOAD_PATH/bash_completion.sh
Composer
您只需在 .bashrc
中使用 completions/bash_completion.sh
。
source PATH_TO_FAKER_CLI/completions/bash_completion.sh
构建自己的 Phar
安装并运行 php-box
$ curl -LSs https://box-project.github.io/box2/installer.php | php
$ ./box.phar build
许可
Faker 命令行工具在 MIT 许可下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。